Portability | non-portable (multi-param classes, functional dependencies) |
---|---|
Stability | experimental |
Maintainer | Mark Snyder, marks@ittc.ku.edu |
Strict state monads.
- module Control.Monad.StateX.Class
- data Index ix => StateX ix s a = StateX ix (s -> (a, s))
- runStateX :: Index ix => ix -> StateX ix s a -> s -> (a, s)
- evalStatex :: Index ix => ix -> StateX ix s a -> s -> a
- execStatex :: Index ix => ix -> StateX ix s a -> s -> s
- mapStatex :: Index ix => ix -> ((a, s) -> (b, s)) -> StateX ix s a -> StateX ix s b
- withStatex :: Index ix => ix -> (s -> s) -> StateX ix s a -> StateX ix s a
- data Index ix => StateTX ix s m a = StateTX ix (s -> m (a, s))
- runStateTX :: Index ix => ix -> StateTX ix s m a -> s -> m (a, s)
- evalStateTX :: (Monad m, Index ix) => ix -> StateTX ix s m a -> s -> m a
- execStateTX :: (Monad m, Index ix) => ix -> StateTX ix s m a -> s -> m s
- mapStateTX :: Index ix => ix -> (m (a, s) -> n (b, s)) -> StateTX ix s m a -> StateTX ix s n b
- withStateTX :: Index ix => ix -> (s -> s) -> StateTX ix s m a -> StateTX ix s m a
- module Control.Monad
- module Control.Monad.Fix
- module Control.Monad.Trans
Documentation
module Control.Monad.StateX.Class
The StateX Monad
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
The StateTX Monad
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