Reducible iteration

Iteration of `ReducibleType` via `Stream`.
Memoization of the rest of the stream is necessary to prevent re-evaluation, which could lead to incorrect results when building a stream from a reducible.