mtl-c-0.1.1: Very strict CPS'd transformers

Safe HaskellTrustworthy
LanguageHaskell98

Control.Monad.Reader.CPS

Documentation

newtype ReaderT r m a Source #

Constructors

ReaderT 

Fields

  • unReaderT :: forall b. r -> (a -> m b) -> m b
     

Instances

MonadError e m => MonadError e (ReaderT r m) Source # 

Methods

throwError :: e -> ReaderT r m a #

catchError :: ReaderT r m a -> (e -> ReaderT r m a) -> ReaderT r m a #

MonadReader r (ReaderT r m) Source # 

Methods

ask :: ReaderT r m r #

local :: (r -> r) -> ReaderT r m a -> ReaderT r m a #

reader :: (r -> a) -> ReaderT r m a #

MonadState s m => MonadState s (ReaderT r m) Source # 

Methods

get :: ReaderT r m s #

put :: s -> ReaderT r m () #

state :: (s -> (a, s)) -> ReaderT r m a #

MonadWriter w m => MonadWriter w (ReaderT r m) Source # 

Methods

writer :: (a, w) -> ReaderT r m a #

tell :: w -> ReaderT r m () #

listen :: ReaderT r m a -> ReaderT r m (a, w) #

pass :: ReaderT r m (a, w -> w) -> ReaderT r m a #

MonadTrans (ReaderT r) Source # 

Methods

lift :: Monad m => m a -> ReaderT r m a #

Monad (ReaderT r m) Source # 

Methods

(>>=) :: ReaderT r m a -> (a -> ReaderT r m b) -> ReaderT r m b #

(>>) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m b #

return :: a -> ReaderT r m a #

fail :: String -> ReaderT r m a #

Functor (ReaderT r m) Source # 

Methods

fmap :: (a -> b) -> ReaderT r m a -> ReaderT r m b #

(<$) :: a -> ReaderT r m b -> ReaderT r m a #

Applicative (ReaderT r m) Source # 

Methods

pure :: a -> ReaderT r m a #

(<*>) :: ReaderT r m (a -> b) -> ReaderT r m a -> ReaderT r m b #

(*>) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m b #

(<*) :: ReaderT r m a -> ReaderT r m b -> ReaderT r m a #

MonadIO m => MonadIO (ReaderT r m) Source # 

Methods

liftIO :: IO a -> ReaderT r m a #

runReaderT :: Monad m => ReaderT r m a -> r -> m a Source #

mapReaderT :: (Monad m, Monad n) => (m a -> n b) -> ReaderT r m a -> ReaderT r n b Source #

runReader :: Reader r a -> r -> a Source #