mtlx-0.1.1: 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.ReaderX.Class

Description

 

Documentation

class (Monad m, Index ix) => MonadReaderX ix r m | ix m -> r whereSource

Methods

askx :: ix -> m rSource

localx :: ix -> (r -> r) -> m a -> m aSource

Instances

Index ix => MonadReaderX ix r ((->) r) 
(Index ix, MonadReaderX ix r m, Monoid w) => MonadReaderX ix r (WriterT w m) 
(Index ix, MonadReaderX ix r m) => MonadReaderX ix r (StateT s m) 
(Monad m, MonadReaderX ix r1 m, Index ix) => MonadReaderX ix r1 (ReaderT r2 m) 
(Index ix, Error e, MonadReaderX ix r m) => MonadReaderX ix r (ErrorT e m) 
Index ix => MonadReaderX ix r (ReaderX ix r) 
(Index ix1, Index ix2, MonadReaderX ix1 r1 m) => MonadReaderX ix1 r1 (ReaderTX ix2 r2 m) 
(Monad m, Index ix) => MonadReaderX ix r (ReaderTX ix r m) 
(Index ixs, MonadReaderX ixr r m) => MonadReaderX ixr r (StateTX ixs st m) 
(Index ixs, MonadReaderX ixr r m) => MonadReaderX ixr r (StateTX ixs st m) 
(Monoid w, Index ixr, Index ixw, MonadReaderX ixr r m) => MonadReaderX ixr r (WriterTX ixw w m) 
(Monoid w, MonadReaderX ixr r m, Index ixw) => MonadReaderX ixr r (WriterTX ixw w m) 
(Monoid w, Index ix) => MonadReaderX ix r (RWSX ix r w s) 
(Monoid w, Index ix) => MonadReaderX ix r (RWSX ix r w s) 
(MonadReaderX ixr r m, Monad m, Monoid w3, Index ixr, Index ix3) => MonadReaderX ixr r (RWSTX ix3 r3 w3 s3 m) 
(Monoid w, Monad m, Index ix) => MonadReaderX ix r (RWSTX ix r w s m) 
(Monoid w, Monad m, Index ix) => MonadReaderX ix r (RWSTX ix r w s m) 

asksx :: MonadReaderX ix r m => ix -> (r -> a) -> m aSource