functor-monad
Safe HaskellNone
LanguageHaskell2010

FMonad.State.Simple.Inner

Documentation

newtype StateT s1 (mm :: (Type -> Type) -> Type -> Type) (x :: Type -> Type) a Source #

Constructors

StateT 

Fields

Instances

Instances details
FFunctor mm => FFunctor (StateT s1 mm) Source # 
Instance details

Defined in FMonad.State.Simple.Inner

Methods

ffmap :: forall (g :: Type -> Type) (h :: Type -> Type) x. (Functor g, Functor h) => (g ~> h) -> StateT s1 mm g x -> StateT s1 mm h x Source #

FMonad mm => FMonad (StateT s1 mm) Source # 
Instance details

Defined in FMonad.State.Simple.Inner

Methods

fpure :: forall (g :: Type -> Type). Functor g => g ~> StateT s1 mm g Source #

fbind :: forall (g :: Type -> Type) (h :: Type -> Type) a. (Functor g, Functor h) => (g ~> StateT s1 mm h) -> StateT s1 mm g a -> StateT s1 mm h a Source #

(FFunctor mm, Functor x) => Functor (StateT s1 mm x) Source # 
Instance details

Defined in FMonad.State.Simple.Inner

Methods

fmap :: (a -> b) -> StateT s1 mm x a -> StateT s1 mm x b #

(<$) :: a -> StateT s1 mm x b -> StateT s1 mm x a #

flift :: forall (mm :: FF) (x :: Type -> Type) s1. (FStrong mm, Functor x) => mm x ~> StateT s1 mm x Source #

toAdjointT :: forall s1 (mm :: (Type -> Type) -> Type -> Type) (x1 :: Type -> Type) x2. StateT s1 mm x1 x2 -> AdjointT (TracedT s1) (WriterT s1) mm x1 x2 Source #

fromAdjointT :: forall s1 (mm :: (Type -> Type) -> Type -> Type) (x1 :: Type -> Type) x2. AdjointT (TracedT s1) (WriterT s1) mm x1 x2 -> StateT s1 mm x1 x2 Source #

type State s1 = StateT s1 (IdentityT :: (Type -> Type) -> Type -> Type) Source #

state :: forall s1 x (mm :: FF) a. (Functor x, FMonad mm) => x (s1 -> (a, s1)) -> StateT s1 mm x a Source #

runState :: State s1 x a -> x (s1 -> (a, s1)) Source #