So, this will throw due to being a uassert. I'd like us to use those as sparingly as possible or not at all. If the documented interface is that you must call more and only call next if true, maybe just:

invariant(more());

Also, that seems like a fair amount of work (re-calling 'more' just to verify). Maybe make this dassert? If they are violating the API, oh well.