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'}, {}]
>>>