Makes stream implementation lazy.
Implement Foldable
Includes programmatic tests.
Merge