Control.Monad.IO.Class

transformers-0.5.2.0: Concrete functor and monad transformers

Copyright | (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001
License | BSD-style (see the file LICENSE)
Maintainer | R.Paterson@city.ac.uk
Stability | experimental
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Control.Monad.IO.Class

Description

Class of monads based on `IO`.

Synopsis

- class Monad m => MonadIO m where
  - liftIO :: IO a -> m a

# Documentation

class Monad m => MonadIO m where

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:

-     liftIO . return = return

-     liftIO (m >>= f) = liftIO m >>= (liftIO . f)

Methods

liftIO :: IO a -> m a

Lift a computation from the `IO` monad.

Instances

MonadIO IO |
MonadIO m => MonadIO (ListT m) |
MonadIO m => MonadIO (MaybeT m) |
MonadIO m => MonadIO (StateT s m) |
MonadIO m => MonadIO (StateT s m) |
MonadIO m => MonadIO (ExceptT e m) |
(Error e, MonadIO m) => MonadIO (ErrorT e m) |
MonadIO m => MonadIO (IdentityT * m) |
(Monoid w, MonadIO m) => MonadIO (WriterT w m) |
(Monoid w, MonadIO m) => MonadIO (WriterT w m) |
MonadIO m => MonadIO (ContT * r m) |
MonadIO m => MonadIO (ReaderT * r m) |
(Monoid w, MonadIO m) => MonadIO (RWST r w s m) |
(Monoid w, MonadIO m) => MonadIO (RWST r w s m) |