functor-monad
Safe HaskellNone
LanguageHaskell2010

FMonad.State.Day

Documentation

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

Constructors

StateT 

Fields

Instances

Instances details
(FFunctor mm, Functor s) => FFunctor (StateT s mm) Source # 
Instance details

Defined in FMonad.State.Day

Methods

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

(Functor s, FMonad mm) => FMonad (StateT s mm) Source # 
Instance details

Defined in FMonad.State.Day

Methods

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

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

Functor s => Functor (StateT s mm x) Source # 
Instance details

Defined in FMonad.State.Day

Methods

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

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

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

toOuter :: forall (x :: Type -> Type) (mm :: FF) s0. (Functor x, FFunctor mm) => StateT ((,) s0) mm x ~> StateT s0 mm x Source #

fromOuter :: forall (x :: Type -> Type) (mm :: FF) s0. (Functor x, FFunctor mm) => StateT s0 mm x ~> StateT ((,) s0) mm x Source #

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

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

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

state :: forall (mm :: FF) s a (x :: Type -> Type). FMonad mm => (forall r. s (a -> r) -> Day s x r) -> StateT s mm x a Source #

state_ :: forall s (mm :: FF) x a. (Functor s, FMonad mm) => (forall b. s b -> (s b, x a)) -> StateT s mm x a Source #

get :: forall (s :: Type -> Type) (mm :: FF). (Comonoid s, FMonad mm) => StateT s mm s () Source #

put :: forall s (mm :: FF) a. (Comonad s, FMonad mm) => s a -> StateT s mm Identity a Source #

runState :: forall s (x :: Type -> Type) a r. State s x a -> s (a -> r) -> Day s x r Source #