Portability | non-portable (multi-param classes, functional dependencies) |
---|---|
Stability | experimental |
Maintainer | Mark Snyder, marks@ittc.ku.edu |
- class (Monad m, Index ix) => MonadStateX ix s m | ix m -> s where
- modifyx :: MonadStateX ix s m => ix -> (s -> s) -> m ()
- getsx :: MonadStateX ix s m => ix -> (s -> a) -> m a
Documentation
class (Monad m, Index ix) => MonadStateX ix s m | ix m -> s whereSource
get returns the state from the internals of the monad.
put replaces the state inside the monad.
Index ix => MonadStateX ix s (StateX ix s) | |
(Index ix, MonadStateX ix s m, Monoid w) => MonadStateX ix s (WriterT w m) | |
(Index ix, MonadStateX ix s m) => MonadStateX ix s (ReaderT r m) | |
(MonadStateX ix s1 m, Index ix) => MonadStateX ix s1 (StateT s2 m) | |
(Error e, MonadStateX ix s m) => MonadStateX ix s (ErrorT e m) | |
(Index ix, MonadStateX ix s m, Monoid w) => MonadStateX ix s (WriterT w m) | |
(Index ix, MonadStateX ix s m) => MonadStateX ix s (ReaderT r m) | |
(MonadStateX ix s1 m, Index ix) => MonadStateX ix s1 (StateT s2 m) | |
(Error e, MonadStateX ixs s m) => MonadStateX ixs s (ErrorT e m) | |
Index ix => MonadStateX ix s (StateX ix s) | |
(Index ixr, Index ixs, MonadStateX ixs s m) => MonadStateX ixs s (ReaderTX ixr r 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 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) | |
(Monoid w, Index ixw, MonadStateX ixs s m) => MonadStateX ixs s (WriterTX ixw w m) | |
(Monoid w, MonadStateX ixs s m, Index ixw) => MonadStateX ixs s (WriterTX ixw w m) | |
(Monoid w, Index ix) => MonadStateX ix s (RWSX ix r w s) | |
(Monoid w, Index ix) => MonadStateX ix s (RWSX ix r w s) | |
(MonadStateX ixs s m, Monad m, Monoid w3, Index ixs, Index ix3) => MonadStateX ixs s (RWSTX ix3 r3 w3 s3 m) | |
(Monoid w, Monad m, Index ix) => MonadStateX ix s (RWSTX ix r w s m) | |
(Monoid w, Monad m, Index ix) => MonadStateX ix s (RWSTX ix r w s m) |
modifyx :: MonadStateX ix s m => ix -> (s -> s) -> m ()Source
Monadic state transformer.
Maps an old state to a new state inside a state monad. The old state is thrown away.
Main> :t modify ((+1) :: Int -> Int) modify (...) :: (MonadState Int a) => a ()
This says that modify (+1)
acts over any
Monad that is a member of the MonadState
class,
with an Int
state.
getsx :: MonadStateX ix s m => ix -> (s -> a) -> m aSource
Gets specific component of the state, using a projection function supplied.