proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Promonad.State

Documentation

data State (s :: k) (a :: k) (b :: k) where Source Comments #

Constructors

State :: forall {k} (a :: k) (b :: k) (s :: k). (Ob a, Ob b) => ((s ** a) ~> (s ** b)) -> State s a b 

Instances

Instances details
(SymMonoidal k, Ob s) => MonoidalProfunctor (State s :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.State

Methods

lift0 :: State s (Unit :: k) (Unit :: k) Source Comments #

lift2 :: forall (x1 :: k) (x2 :: k) (y1 :: k) (y2 :: k). State s x1 x2 -> State s y1 y2 -> State s (x1 ** y1) (x2 ** y2) Source Comments #

(Monoidal k, Ob s) => Profunctor (State s :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.State

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> State s a b -> State s c d Source Comments #

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> State s a b -> r Source Comments #

(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.State

Methods

id :: forall (a :: k). Ob a => State s a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). State s b c -> State s a b -> State s a c Source Comments #