dependent-state-1.0.0: Control structure similar to Control.Monad.State, allowing multiple nested states, distinguishable by provided phantom types.

Safe HaskellNone
LanguageHaskell2010

Control.Monad.State.Dependent

Documentation

newtype StateT t s m a Source

Constructors

StateT (StateT s m a) 

Instances

Monad m => MonadPut t s (StateT t s m) Source 
Monad m => MonadGet t s (StateT t s m) Source 
MonadState r m => MonadState r (StateT t s m) Source 
MonadTrans (StateT t s) Source 
Monad m => Monad (StateT t s m) Source 
Functor m => Functor (StateT t s m) Source 
MonadFix m => MonadFix (StateT t s m) Source 
Monad m => Applicative (StateT t s m) Source 
MonadPlus m => Alternative (StateT t s m) Source 
MonadPlus m => MonadPlus (StateT t s m) Source 
MonadIO m => MonadIO (StateT t s m) Source 

type State t s = StateT t s Identity Source

type MonadState t s m = (MonadGet t s m, MonadPut t s m) Source

class Monad m => MonadGet t s m | t m -> s where Source

Methods

get :: t -> m s Source

Instances

(MonadGet tp s m, MonadTrans t, Monad (t m)) => MonadGet tp s (t m) Source 
Monad m => MonadGet t s (StateT t s m) Source 

class Monad m => MonadPut t s m | t m -> s where Source

Methods

put :: t -> s -> m () Source

Instances

(MonadPut tp s m, MonadTrans t, Monad (t m)) => MonadPut tp s (t m) Source 
Monad m => MonadPut t s (StateT t s m) Source 

fromStateT :: StateT t s m a -> StateT s m a Source

runT :: t -> StateT t s m a -> s -> m (a, s) Source

evalT :: Monad m => t -> StateT t s m a -> s -> m a Source

execT :: Monad m => t -> StateT t s m a -> s -> m s Source

run :: t -> State t s a -> s -> (a, s) Source

eval :: t -> State t s a -> s -> a Source

exec :: t -> State t s a -> s -> s Source

with :: MonadState t s m => t -> (s -> s) -> m a -> m a Source

modify :: MonadState t s m => t -> (s -> (s, a)) -> m a Source

modify_ :: MonadState t s m => t -> (s -> s) -> m () Source

modifyM :: MonadState t s m => t -> (s -> m (s, a)) -> m a Source

withState :: MonadState t s m => t -> (s -> s) -> m () Source