Monads in which IO computations may be embedded.
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 MonadIO.liftIO is a transformer of monads:
liftIO . return = return
liftIO (m >>= f) = liftIO m >>= (liftIO . f)
Lift a computation from the IO monad.