ether-0.3.0.0: Monad transformers and classes

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Ether.State.Class

Description

Synopsis

Documentation

class Monad m => MonadState tag s m | m tag -> s where Source

Minimal complete definition

state | get, put

Methods

get :: proxy tag -> m s Source

Return the state from the internals of the monad.

put :: proxy tag -> s -> m () Source

Replace the state inside the monad.

state :: proxy tag -> (s -> (a, s)) -> m a Source

Embed a simple state action into the monad.

Instances

MonadState tag s m => MonadState tag s (MaybeT m) 
MonadState tag s m => MonadState tag s (ListT m) 
MonadState tag s m => MonadState tag s (IdentityT m) 
(Monoid w, MonadState tag s m) => MonadState tag s (WriterT w m) 
(Monoid w, MonadState tag s m) => MonadState tag s (WriterT w m) 
MonadState tag s m => MonadState tag s (StateT s' m) 
MonadState tag s m => MonadState tag s (StateT s' m) 
MonadState tag s m => MonadState tag s (ReaderT r m) 
MonadState tag s m => MonadState tag s (ExceptT e m) 
MonadState tag s m => MonadState tag s (ContT r m) 
MonadState tag s m => MonadState tag s (WrappedEther tag' m) 
MonadState tag s m => MonadState tag s (ExceptT tag' e m) 
(Monoid w, MonadState tag s m) => MonadState tag s (WriterT tag' w m) 
MonadState tag s m => MonadState tag s (ReaderT tag' r m) 
MonadState tag s m => MonadState tag s (StateT tag' s' m) 
Monad m => MonadState tag s (StateT tag s m) 
MonadState tag s m => MonadState tag s (StateT tag' s' m) 
Monad m => MonadState tag s (StateT tag s m) 

modify :: MonadState tag s m => proxy tag -> (s -> s) -> m () Source

Modifies the state inside a state monad.

gets :: MonadState tag s m => proxy tag -> (s -> a) -> m a Source

Gets specific component of the state, using a projection function supplied.