Portability | non-portable (multi-param classes, functional dependencies) |
---|---|
Stability | experimental |
Maintainer | Mark Snyder, marks@ittc.ku.edu |
Lazy state monads.
Documentation
module Control.Monad.StateX.Class
evalStatex :: Index ix => ix -> StateX ix s a -> s -> aSource
execStatex :: Index ix => ix -> StateX ix s a -> s -> sSource
withStatex :: Index ix => ix -> (s -> s) -> StateX ix s a -> StateX ix s aSource
data Index ix => StateTX ix s m a Source
StateTX ix (s -> m (a, s)) |
(Index ixs, MonadReaderX ixr r m) => MonadReaderX ixr r (StateTX ixs st m) | |
(Index ix1, Index ix2, MonadStateX ix1 s1 m) => MonadStateX ix1 s1 (StateTX ix2 s2 m) | |
(Monad m, Index ix) => MonadStateX ix s (StateTX ix s m) | |
(Index ixs, MonadWriterX ixw w m) => MonadWriterX ixw w (StateTX ixs s m) | |
(Index ix, MonadReader r m) => MonadReader r (StateTX ix st m) | |
(MonadState s1 m, Index ix) => MonadState s1 (StateTX ix s2 m) | |
(MonadError e m, Index ix) => MonadError e (StateTX ix s m) | |
(Index ix, MonadWriter w m) => MonadWriter w (StateTX ix s m) | |
Index ix => MonadTrans (StateTX ix s) | |
(Monad m, Index ix) => Monad (StateTX ix s m) | |
(Monad m, Index ix) => Functor (StateTX ix s m) | |
(MonadFix m, Index ix) => MonadFix (StateTX ix s m) | |
(MonadPlus m, Index ix) => MonadPlus (StateTX ix s m) | |
(MonadCont m, Index ix) => MonadCont (StateTX ix s m) | |
(MonadIO m, Index ix) => MonadIO (StateTX ix s m) |
runStateTX :: Index ix => ix -> StateTX ix s m a -> s -> m (a, s)Source
evalStateTX :: (Monad m, Index ix) => ix -> StateTX ix s m a -> s -> m aSource
execStateTX :: (Monad m, Index ix) => ix -> StateTX ix s m a -> s -> m sSource
mapStateTX :: Index ix => ix -> (m (a, s) -> n (b, s)) -> StateTX ix s m a -> StateTX ix s n bSource
withStateTX :: Index ix => ix -> (s -> s) -> StateTX ix s m a -> StateTX ix s m aSource
module Control.Monad
module Control.Monad.Fix
module Control.Monad.Trans