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

Control.Monad.WriterX.Strict

Documentation

data Index ix => WriterX ix w a Source

Constructors

WriterX ix (a, w) 

Instances

(Monoid w, Index ix) => MonadWriterX ix w (WriterX ix w) 
(Monoid w, Index ix) => Monad (WriterX ix w) 
Index ix => Functor (WriterX ix w) 
(Monoid w, Index ix) => MonadFix (WriterX ix w) 

runWriterX :: Index ix => ix -> WriterX ix w a -> (a, w)Source

execWriterX :: Index ix => ix -> WriterX ix w a -> wSource

mapWriterX :: Index ix => ix -> ((a, w) -> (b, w')) -> WriterX ix w a -> WriterX ix w' bSource

data Index ix => WriterTX ix w m a Source

Constructors

WriterTX ix (m (a, w)) 

Instances

(Monoid w, MonadReaderX ixr r m, Index ixw) => MonadReaderX ixr r (WriterTX ixw w m) 
(Monoid w, MonadStateX ixs s m, Index ixw) => MonadStateX ixs s (WriterTX ixw 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, MonadErrorX ixe e m, Index ixw) => MonadErrorX ixe e (WriterTX ixw w m) 
(Monoid w, MonadReader r m, Index ix) => MonadReader r (WriterTX ix w m) 
(Monoid w, MonadState s m, Index ix) => MonadState s (WriterTX ix w m) 
(Monoid w, MonadError e m, Index ix) => MonadError e (WriterTX ix w m) 
(Index ixw2, MonadWriter w m, Monoid s) => MonadWriter w (WriterTX ixw2 s m) 
(Monoid w, Index ix) => MonadTrans (WriterTX ix w) 
(Monoid w, Monad m, Index ix) => Monad (WriterTX ix w m) 
(Monad m, Index ix) => Functor (WriterTX ix w m) 
(Monoid w, MonadFix m, Index ix) => MonadFix (WriterTX ix w m) 
(Monoid w, MonadPlus m, Index ix) => MonadPlus (WriterTX ix w m) 
(Monoid w, MonadCont m, Index ix) => MonadCont (WriterTX ix w m) 
(Monoid w, MonadIO m, Index ix) => MonadIO (WriterTX ix w m) 

runWriterTX :: Index ix => ix -> WriterTX ix w m a -> m (a, w)Source

execWriterTX :: (Monad m, Index ix) => ix -> WriterTX ix w m a -> m wSource

mapWriterTX :: Index ix => ix -> (m (a, w) -> n (b, w')) -> WriterTX ix w m a -> WriterTX ix w' n bSource