Define sequence->gen
Rename identity to ident to avoid name clashes
Add monad-t and lift
Redefine state-monad in terms of state-t
Redefine gen-state-monad using state-monad-t
Rewrite stream.rkt and define stream-monad
Define stream-state-monad