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