A generic lazy list. It's an immutable iterator with continuations.
The lazy list can be used as an immutable alternative to the standard Rust iterator.
Any List<End = Self> is an iterator. Any &mut Iterator is a List<End = Self>.
List<End = Self>
&mut Iterator