IteratorAn external, pull-style iterator (hasNext?/next) over any each:-able.
Backed by a fiber: running the iterable's each: inside a fiber turns each element into a ^> yield, so elements can be pulled one at a time. One element of look-ahead lets hasNext? work; done-ness is decided by the fiber finishing, not by a sentinel value, so nil elements are fine. Obtain one with .iterator rather than constructing it directly.
var it = #(10 20).iterator; it.next; it.hasNext? "* -> true
An Iterator pulling from any iterable's each: (what .iterator answers).
Pull the next element from the fiber into the look-ahead slot; flips hasNext? off when the fiber finishes.
True when another element is available, i.e. next will succeed.
Prime the one-element look-ahead by advancing to the first element.
The next element; throws StopIteration when the iterator is exhausted.