mtl-unleashed-0.6.1: MTL classes without the functional dependency

Safe HaskellNone
LanguageHaskell2010

Control.Monad.States

Description

MonadState without the function dependency m -> s.

Synopsis

Documentation

class Monad m => MonadStates s m where Source #

Minimal complete definition

statePoly | getPoly, putPoly

Methods

getPoly :: m s Source #

putPoly :: s -> m () Source #

Replace the state inside the monad.

Instances

MonadStates s m => MonadStates s (MaybeT m) Source # 

Methods

getPoly :: MaybeT m s Source #

putPoly :: s -> MaybeT m () Source #

statePoly :: (s -> (a, s)) -> MaybeT m a

MonadStates s m => MonadStates s (ListT m) Source # 

Methods

getPoly :: ListT m s Source #

putPoly :: s -> ListT m () Source #

statePoly :: (s -> (a, s)) -> ListT m a

MonadStates s m => MonadStates s (IdentityT * m) Source # 

Methods

getPoly :: IdentityT * m s Source #

putPoly :: s -> IdentityT * m () Source #

statePoly :: (s -> (a, s)) -> IdentityT * m a

MonadStates s m => MonadStates s (ExceptT e m) Source # 

Methods

getPoly :: ExceptT e m s Source #

putPoly :: s -> ExceptT e m () Source #

statePoly :: (s -> (a, s)) -> ExceptT e m a

(Error e, MonadStates s m) => MonadStates s (ErrorT e m) Source # 

Methods

getPoly :: ErrorT e m s Source #

putPoly :: s -> ErrorT e m () Source #

statePoly :: (s -> (a, s)) -> ErrorT e m a

(Monoid w, MonadStates s m) => MonadStates s (WriterT w m) Source # 

Methods

getPoly :: WriterT w m s Source #

putPoly :: s -> WriterT w m () Source #

statePoly :: (s -> (a, s)) -> WriterT w m a

(Monoid w, MonadStates s m) => MonadStates s (WriterT w m) Source # 

Methods

getPoly :: WriterT w m s Source #

putPoly :: s -> WriterT w m () Source #

statePoly :: (s -> (a, s)) -> WriterT w m a

Monad m => MonadStates s (StateT s m) Source # 

Methods

getPoly :: StateT s m s Source #

putPoly :: s -> StateT s m () Source #

statePoly :: (s -> (a, s)) -> StateT s m a

Monad m => MonadStates s (StateT s m) Source # 

Methods

getPoly :: StateT s m s Source #

putPoly :: s -> StateT s m () Source #

statePoly :: (s -> (a, s)) -> StateT s m a

MonadStates s m => MonadStates s (ContT * r m) Source # 

Methods

getPoly :: ContT * r m s Source #

putPoly :: s -> ContT * r m () Source #

statePoly :: (s -> (a, s)) -> ContT * r m a

MonadStates s m => MonadStates s (ReaderT * r m) Source # 

Methods

getPoly :: ReaderT * r m s Source #

putPoly :: s -> ReaderT * r m () Source #

statePoly :: (s -> (a, s)) -> ReaderT * r m a

(Monad m, Monoid w) => MonadStates s (RWST r w s m) Source # 

Methods

getPoly :: RWST r w s m s Source #

putPoly :: s -> RWST r w s m () Source #

statePoly :: (s -> (a, s)) -> RWST r w s m a

(Monad m, Monoid w) => MonadStates s (RWST r w s m) Source # 

Methods

getPoly :: RWST r w s m s Source #

putPoly :: s -> RWST r w s m () Source #

statePoly :: (s -> (a, s)) -> RWST r w s m a

modifyPoly :: (Monad m, MonadStates s m) => (s -> s) -> m () Source #

usePoly :: forall s m a. (Monad m, MonadStates s m) => Getting a s a -> m a Source #

overPoly :: forall s m a. (Monad m, MonadStates s m) => ASetter s s a a -> (a -> a) -> m () Source #

Modify part of the s