@jenniferplusplus You can do it with proxy objects to avoid resolving the entire thing at once, but you need some concept of a proxy object or a lazy object because next/prev/current/first/last can actually be the next etc _object_ and not just the reference -.-
(I know you know this, I'm musing through it)
You also don't have good tools to manage pagination on ordered collections. It tries to do index based, but that's extremely weak, so if you want it to work properly you'll need tokens.