Clean up.
Input and output streams are created from Output.
Streams are monads.
Output type removed.
Streams are type safe again.