Control.Monad.IO.Class

Copyright (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001
License BSD-style (see the file LICENSE)
Maintainer [email protected]
Stability experimental
Portability portable
Safe Haskell Safe
Language Haskell98

Description

Class of monads based on IO.

class Monad m => MonadIO m where Source

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:

Methods

liftIO :: IO a -> m a Source

Lift a computation from the IO monad.

Instances

MonadIO IO
MonadIO m => MonadIO (IdentityT m)
MonadIO m => MonadIO (ListT m)
MonadIO m => MonadIO (MaybeT m)
MonadIO m => MonadIO (ContT r m)
MonadIO m => MonadIO (ReaderT r 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)
(Monoid w, MonadIO m) => MonadIO (WriterT w m)
(Monoid w, MonadIO m) => MonadIO (WriterT w m)
(Monoid w, MonadIO m) => MonadIO (RWST r w s m)
(Monoid w, MonadIO m) => MonadIO (RWST r w s m)

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/transformers-0.4.2.0/Control-Monad-IO-Class.html