Control.Monad.Trans.Monad
Description
Monad transformers. There are also MonadPlus and MonadFix transformes, see the corresponding modules.
Documentation
MonadM m is actually a free monad generated by m. MonadM is a monad itself (on the (* -> *) category), as usually happens with free structures.
class MonadTrans t => TransM t whereSource
A composable monad transformer.
Methods
transMInst :: Monad m => Inst MonadM (t m)Source
You shoudn't (and probably can't) use *anything* except for , defined in this very module, as instMtransMInst.
If you define instance TransM T where transMInst = instM, then you would also need to define instance Monad m => Monad (T m) somewhere in your code.
instM :: Monad m => Inst MonadM mSource
A monad is nothing but an algebra over the MonadM monad. instM provides it's structure map.