enum Step[a: Type]Source
case Ans(a)case Skipcase Done

Represent the "steps" of an iterator.

This is an expanded version of the Option type. Ans is the answer at an intermediate stage of iteration. Done signals that iteration is complete. Skip is essentially an implementation detail. It allows us to define filter and similar functions that "wither" Iterators without recursively running through the Iterator.