mtlx-0.1.2: Monad transformer library with type indexes, providing 'free' copies.

Portabilitynon-portable (multi-param classes, functional dependencies)
Stabilityexperimental
MaintainerMark Snyder, marks@ittc.ku.edu

Control.Monad.WriterX.Class

Description

 

Documentation

class (Monoid w, Monad m, Index ix) => MonadWriterX ix w m | ix m -> w whereSource

Methods

tellx :: ix -> w -> m ()Source

listenx :: ix -> m a -> m (a, w)Source

passx :: ix -> m (a, w -> w) -> m aSource

Instances

(Monoid w, Index ix) => MonadWriterX ix w (WriterX ix w) 
(Index ixw, MonadWriterX ixw w m) => MonadWriterX ixw w (ReaderT r m) 
(MonadWriterX ixw w m, Index ixw) => MonadWriterX ixw w (StateT s m) 
(MonadWriterX ixw w m, Index ixw, Monoid w2) => MonadWriterX ixw w (WriterT w2 m) 
(Error e, MonadWriterX ix w m, Index ix) => MonadWriterX ix w (ErrorT e m) 
(Monoid w, Index ix) => MonadWriterX ix w (WriterX ix w) 
(Index ixr, MonadWriterX ixw w m) => MonadWriterX ixw w (ReaderTX ixr r m) 
(Index ixs, MonadWriterX ixw w m) => MonadWriterX ixw w (StateTX ixs s m) 
(Index ixs, MonadWriterX ixw w m) => MonadWriterX ixw w (StateTX ixs s m) 
(Index ixw1, Index ixw2, Monoid w1, Monoid w2, MonadWriterX ixw1 w1 m) => MonadWriterX ixw1 w1 (WriterTX ixw2 w2 m) 
(Monoid w, Monad m, Index ix) => MonadWriterX ix w (WriterTX ix w m) 
(Index ixw2, MonadWriterX ixw1 w m, Monoid w, Monoid s) => MonadWriterX ixw1 w (WriterTX ixw2 s m) 
(Monoid w, Monad m, Index ix) => MonadWriterX ix w (WriterTX ix w m) 
(Monoid w, Index ix) => MonadWriterX ix w (RWSX ix r w s) 
(Monoid w, Index ix) => MonadWriterX ix w (RWSX ix r w s) 
(MonadWriterX ixw w m, Monad m, Monoid w3, Monoid w, Index ixw, Index ix3) => MonadWriterX ixw w (RWSTX ix3 r3 w3 s3 m) 
(Monoid w, Monad m, Index ix) => MonadWriterX ix w (RWSTX ix r w s m) 
(Monoid w, Monad m, Index ix) => MonadWriterX ix w (RWSTX ix r w s m) 

listensx :: (MonadWriterX ix w m, Index ix) => ix -> (w -> b) -> m a -> m (a, b)Source

censorx :: (MonadWriterX ix w m, Index ix) => ix -> (w -> w) -> m a -> m aSource