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

Control.Monad.RWSX.Class

Documentation

class (Monoid w, Index ix, MonadReaderX ix r m, MonadWriterX ix w m, MonadStateX ix s m) => MonadRWSX ix r w s m | ix m -> r, ix m -> w, ix m -> sSource

Instances

(Monoid w1, Index ix1, MonadRWSX ix1 r1 w1 s1 m) => MonadRWSX ix1 r1 w1 s1 (StateT s2 m) 
(Monoid w1, Monoid w2, Index ix1, MonadRWSX ix1 r1 w1 s1 m) => MonadRWSX ix1 r1 w1 s1 (WriterT w2 m) 
(Monoid w1, Index ix1, MonadRWSX ix1 r1 w1 s1 m) => MonadRWSX ix1 r1 w1 s1 (ReaderT r2 m) 
(Monoid w1, Monoid w2, Index ix1, MonadRWSX ix1 r1 w1 s1 m) => MonadRWSX ix1 r1 w1 s1 (RWST r2 w2 s2 m) 
(Monoid w, Index ix) => MonadRWSX ix r w s (RWSX ix r w s) 
(Monoid w, Index ix) => MonadRWSX ix r w s (RWSX ix r w s) 
(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 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)