This is the Iterator<T> class I’ve defined in other projects - maybe it deserves another name? Cursor<T>?
Iterator<T>
Cursor<T>