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

Safe HaskellTrustworthy
LanguageHaskell98

Control.Monad.Writer.CPS

Documentation

newtype WriterT w m a Source #

Constructors

WriterT 

Fields

  • unWriterT :: forall r. (a -> w -> m r) -> m r
     

Instances

(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) Source # 

Methods

ask :: WriterT w m r #

local :: (r -> r) -> WriterT w m a -> WriterT w m a #

reader :: (r -> a) -> WriterT w m a #

(Monoid w, MonadState s m) => MonadState s (WriterT w m) Source # 

Methods

get :: WriterT w m s #

put :: s -> WriterT w m () #

state :: (s -> (a, s)) -> WriterT w m a #

Monoid w => MonadWriter w (WriterT w m) Source # 

Methods

writer :: (a, w) -> WriterT w m a #

tell :: w -> WriterT w m () #

listen :: WriterT w m a -> WriterT w m (a, w) #

pass :: WriterT w m (a, w -> w) -> WriterT w m a #

Monoid w => MonadTrans (WriterT w) Source # 

Methods

lift :: Monad m => m a -> WriterT w m a #

Monoid w => Monad (WriterT w m) Source # 

Methods

(>>=) :: WriterT w m a -> (a -> WriterT w m b) -> WriterT w m b #

(>>) :: WriterT w m a -> WriterT w m b -> WriterT w m b #

return :: a -> WriterT w m a #

fail :: String -> WriterT w m a #

Functor (WriterT w m) Source # 

Methods

fmap :: (a -> b) -> WriterT w m a -> WriterT w m b #

(<$) :: a -> WriterT w m b -> WriterT w m a #

Monoid w => Applicative (WriterT w m) Source # 

Methods

pure :: a -> WriterT w m a #

(<*>) :: WriterT w m (a -> b) -> WriterT w m a -> WriterT w m b #

(*>) :: WriterT w m a -> WriterT w m b -> WriterT w m b #

(<*) :: WriterT w m a -> WriterT w m b -> WriterT w m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) Source # 

Methods

liftIO :: IO a -> WriterT w m a #

runWriterT :: Monad m => WriterT w m a -> m (a, w) Source #

execWriterT :: Monad m => WriterT w m a -> m w Source #

mapWriterT :: (Monad m, Monad n) => (m (a, w) -> n (b, w)) -> WriterT w m a -> WriterT w n b Source #

runWriter :: Writer w a -> (a, w) Source #