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

Control.Monad.RWSX.Lazy

Documentation

newtype RWSX ix r w s a Source

Constructors

RWSX 

Fields

runRWSX' :: r -> s -> (a, s, w)
 

Instances

(Monoid w, Index ix) => MonadRWSX ix r w s (RWSX ix r w s) 
(Monoid w, Index ix) => MonadReaderX ix r (RWSX ix r w s) 
(Monoid w, Index ix) => MonadStateX ix s (RWSX ix r w s) 
(Monoid w, Index ix) => MonadWriterX ix w (RWSX ix r w s) 
(Monoid w, Index ix) => Monad (RWSX ix r w s) 
Index ix => Functor (RWSX ix r w s) 
(Monoid w, Index ix) => MonadFix (RWSX ix r w s) 

mkRWSX :: Index ix => ix -> (r -> s -> (a, s, w)) -> RWSX ix r w s aSource

runRWSX :: Index ix => ix -> RWSX ix r w s a -> r -> s -> (a, s, w)Source

evalRWSX :: Index ix => ix -> RWSX ix r w s a -> r -> s -> (a, w)Source

execRWSX :: Index ix => ix -> RWSX ix r w s a -> r -> s -> (s, w)Source

mapRWSX :: Index ix => ix -> ((a, s, w) -> (b, s, w')) -> RWSX ix r w s a -> RWSX ix r w' s bSource

withRWSX :: Index ix => ix -> (r' -> s -> (r, s)) -> RWSX ix r w s a -> RWSX ix r' w s aSource

newtype RWSTX ix r w s m a Source

Constructors

RWSTX 

Fields

runRWSTX' :: r -> s -> m (a, s, w)
 

Instances

(Monoid w1, Monoid w2, Index ix1, Index ix2, MonadRWSX ix1 r1 w1 s1 m) => MonadRWSX ix1 r1 w1 s1 (RWSTX ix2 r2 w2 s2 m) 
(r1 ~ r2, s1 ~ s2, w1 ~ w2, Monad m, Monoid w1, Monoid w2, Index ix) => MonadRWSX ix r1 w1 s1 (RWSTX ix r2 w2 s2 m) 
(Monoid w1, Monoid w2, Index ix2, MonadRWS r1 w1 s1 m) => MonadRWS r1 w1 s1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w2, Monad m, Index ix1, Index ix2, MonadReaderX ix1 r1 m) => MonadReaderX ix1 r1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w, Monad m, Index ix) => MonadReaderX ix r (RWSTX ix r w s m) 
(Monoid w2, Monad m, Index ix1, Index ix2, MonadStateX ix1 s1 m) => MonadStateX ix1 s1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w, Monad m, Index ix) => MonadStateX ix s (RWSTX ix r w s m) 
(Monoid w1, Monoid w2, Monad m, Index ix1, Index ix2, MonadWriterX ix1 w1 m) => MonadWriterX ix1 w1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w, Monad m, Index ix) => MonadWriterX ix w (RWSTX ix r w s m) 
(Monoid w, MonadErrorX ixe e m, Index ix, Index ixe) => MonadErrorX ixe e (RWSTX ix r w s m) 
(Monoid w, MonadError e m, Index ix) => MonadError e (RWSTX ix r w s m) 
(Monoid w2, Monad m, Index ix2, MonadReader r1 m) => MonadReader r1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w2, Monad m, Index ix2, MonadState s1 m) => MonadState s1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w1, Monoid w2, Monad m, Index ix2, MonadWriter w1 m) => MonadWriter w1 (RWSTX ix2 r2 w2 s2 m) 
(Monoid w, Index ix) => MonadTrans (RWSTX ix r w s) 
(Monoid w, Monad m, Index ix) => Monad (RWSTX ix r w s m) 
(Monad m, Index ix) => Functor (RWSTX ix r w s m) 
(Monoid w, MonadFix m, Index ix) => MonadFix (RWSTX ix r w s m) 
(Monoid w, MonadPlus m, Index ix) => MonadPlus (RWSTX ix r w s m) 
(Monoid w, MonadIO m, Index ix) => MonadIO (RWSTX ix r w s m) 
(Monoid w, MonadCont m, Index ix) => MonadCont (RWSTX ix r w s m) 

mkRWSTX :: Index ix => ix -> (r -> s -> m (a, s, w)) -> RWSTX ix r w s m aSource

runRWSTX :: Index ix => ix -> RWSTX ix r w s m a -> r -> s -> m (a, s, w)Source

evalRWSTX :: (Monad m, Index ix) => ix -> RWSTX ix r w s m a -> r -> s -> m (a, w)Source

execRWSTX :: (Monad m, Index ix) => ix -> RWSTX ix r w s m a -> r -> s -> m (s, w)Source

mapRWSTX :: Index ix => ix -> (m (a, s, w) -> n (b, s, w')) -> RWSTX ix r w s m a -> RWSTX ix r w' s n bSource

withRWSTX :: Index ix => ix -> (r' -> s -> (r, s)) -> RWSTX ix r w s m a -> RWSTX ix r' w s m aSource