Copyright | (c) Edward Kmett 2011 (c) Conal Elliott 2008 |
---|---|
License | BSD3 |
Maintainer | ekmett@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Control.Monad.Representable.Reader
Description
Representable functors on Hask are all monads, because they are isomorphic to
a Reader
monad.
- type Reader f = ReaderT f Identity
- runReader :: Representable f => Reader f b -> Rep f -> b
- newtype ReaderT f m b = ReaderT {
- getReaderT :: f (m b)
- readerT :: Representable f => (Rep f -> m b) -> ReaderT f m b
- runReaderT :: Representable f => ReaderT f m b -> Rep f -> m b
- class Monad m => MonadReader r m | m -> r where
- module Data.Functor.Rep
Representable functor monad
runReader :: Representable f => Reader f b -> Rep f -> b #
Monad Transformer
Constructors
ReaderT | |
Fields
|
Instances
readerT :: Representable f => (Rep f -> m b) -> ReaderT f m b #
runReaderT :: Representable f => ReaderT f m b -> Rep f -> m b #
class Monad m => MonadReader r m | m -> r where #
See examples in Control.Monad.Reader.
Note, the partially applied function type (->) r
is a simple reader monad.
See the instance
declaration below.
Methods
Retrieves the monad environment.
local :: (r -> r) -> m a -> m a #
Executes a computation in a modified environment.
Retrieves a function of the current environment.
Instances
(Representable f, (~) * (Rep f) a) => MonadReader a (Co f) # | |
(Functor m, MonadReader e m) => MonadReader e (Free m) | |
MonadReader r m => MonadReader r (MaybeT m) | |
MonadReader r m => MonadReader r (ListT m) | |
MonadReader r ((->) r) | |
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |
MonadReader r m => MonadReader r (StateT s m) | |
MonadReader r m => MonadReader r (StateT s m) | |
MonadReader r m => MonadReader r (IdentityT * m) | |
MonadReader r m => MonadReader r (ExceptT e m) | |
(Error e, MonadReader r m) => MonadReader r (ErrorT e m) | |
(Representable g, MonadReader e m) => MonadReader e (StateT g m) # | |
Monad m => MonadReader r (ReaderT * r m) | |
MonadReader r' m => MonadReader r' (ContT * r m) | |
(Monad m, Monoid w) => MonadReader r (RWST r w s m) | |
(Monad m, Monoid w) => MonadReader r (RWST r w s m) | |
module Data.Functor.Rep