+-- newtype Session a = Session (ParserStateReader FromServerMessage SessionState SessionContext IO a)
+
+newtype Session a = Session (ConduitParser FromServerMessage (StateT SessionState (ReaderT SessionContext IO)) a)
+ deriving (Functor, Applicative, Monad, MonadIO, Alternative)