Monad +Control +transformers

class Monad m => MonadIO m
transformers Control.Monad.IO.Class
Monads in which IO computations may be embedded. Any monad built by applying a sequence of monad transformers to the IO monad will be an instance of this class. Instances should satisfy the following laws, which state that liftIO is a transformer of monads: *  . return = *  (m >>= f) = liftIO m >>= > (liftIO .  
class MonadTrans t
transformers Control.Monad.Trans.Class
The class of monad transformers. Instances should satisfy the following laws, which state that lift is a transformer of monads: *  . return = *  (m >>= f) = lift m >>= > (lift .