-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Control structure similar to Control.Monad.State, allowing multiple nested states, distinguishable by provided phantom types. -- -- Control structure similar to Control.Monad.State, allowing multiple -- nested states, distinguishable by provided phantom types. @package dependent-state @version 1.0.1 module Control.Monad.State.Dependent newtype StateT t s m a StateT :: (StateT s m a) -> StateT t s m a type State t s = StateT t s Identity type MonadState t s m = (MonadGet t s m, MonadPut t s m) class Monad m => MonadGet t s m | t m -> s get :: MonadGet t s m => t -> m s class Monad m => MonadPut t s m | t m -> s put :: MonadPut t s m => t -> s -> m () fromStateT :: StateT t s m a -> StateT s m a runT :: t -> StateT t s m a -> s -> m (a, s) evalT :: Monad m => t -> StateT t s m a -> s -> m a execT :: Monad m => t -> StateT t s m a -> s -> m s run :: t -> State t s a -> s -> (a, s) eval :: t -> State t s a -> s -> a exec :: t -> State t s a -> s -> s with :: MonadState t s m => t -> (s -> s) -> m a -> m a modify :: MonadState t s m => t -> (s -> (s, a)) -> m a modify_ :: MonadState t s m => t -> (s -> s) -> m () modifyM :: MonadState t s m => t -> (s -> m (s, a)) -> m a withState :: MonadState t s m => t -> (s -> s) -> m () instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.MonadPlus m => GHC.Base.Alternative (Control.Monad.State.Dependent.StateT t s m) instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.State.Dependent.StateT t s) instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Control.Monad.State.Dependent.StateT t s m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.Monad m => GHC.Base.Applicative (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.Functor m => GHC.Base.Functor (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.Monad m => Control.Monad.State.Dependent.MonadGet t s (Control.Monad.State.Dependent.StateT t s m) instance GHC.Base.Monad m => Control.Monad.State.Dependent.MonadPut t s (Control.Monad.State.Dependent.StateT t s m) instance Control.Monad.State.Class.MonadState r m => Control.Monad.State.Class.MonadState r (Control.Monad.State.Dependent.StateT t s m) instance (Control.Monad.State.Dependent.MonadGet tp s m, Control.Monad.Trans.Class.MonadTrans t, GHC.Base.Monad (t m)) => Control.Monad.State.Dependent.MonadGet tp s (t m) instance (Control.Monad.State.Dependent.MonadPut tp s m, Control.Monad.Trans.Class.MonadTrans t, GHC.Base.Monad (t m)) => Control.Monad.State.Dependent.MonadPut tp s (t m)