Handling infinity
A List delegates .infinite to its ListIter.
A ListIter (currently) returns the infinity of the next unreified thing.
(Speculation: ListIter could "scan ahead" for infinite items.)
When a ListIter is asked to reify eagerly, it stops when it encounters a "known infinite" Iterable.
continued...