haskell library for monad transformers, like mtl's ReaderT/StateT, but more than one contained value/type