Geometries
Sequence and Iterator protocols
Return what? New geometries or references to "elements" of the first geometry?
Case for references
Here's a Python analogy. a is like a geometry (a line string, say) and b is a component point. A reference to a point within a can be had, and then modified, with corresponding change to a.
>>> class A:
... pass
...
>>> a = [A(), A(), A()]
>>> b = a[1]
>>> b.foo = 'bar'
>>> [o.__dict__ for o in a]
[{}, {'foo': 'bar'}, {}]
>>>
