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

Proarrow.Promonad.Writer

Documentation

data Writer (w :: m) (a :: k) (b :: k) where Source Comments #

Constructors

Writer :: forall {k} {m} (a :: k) (b :: k) (w :: m). (Ob a, Ob b) => (a ~> Act w b) -> Writer w a b 

Instances

Instances details
(Ob w, MonoidalAction m k, SymMonoidal m) => Strong m (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

act :: forall (a :: m) (b :: m) (x :: k) (y :: k). (a ~> b) -> Writer w x y -> Writer w (Act a x) (Act b y) Source Comments #

(Monoid w, SelfAction k, SymMonoidal k) => MonoidalProfunctor (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

par0 :: Writer w (Unit :: k) (Unit :: k) Source Comments #

par :: forall (x1 :: k) (x2 :: k) (y1 :: k) (y2 :: k). Writer w x1 x2 -> Writer w y1 y2 -> Writer w (x1 ** y1) (x2 ** y2) Source Comments #

(Ob w, MonoidalAction m k) => Profunctor (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

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

(Ob r, MonoidalAction m k) => Adjunction (Writer r :: k -> k -> Type) (Reader ('OP r) :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

unit :: forall (a :: k). Ob a => ((Reader ('OP r) :: k -> k -> Type) :.: (Writer r :: k -> k -> Type)) a a Source Comments #

counit :: ((Writer r :: k -> k -> Type) :.: (Reader ('OP r) :: k -> k -> Type)) :~> ((~>) :: CAT k) Source Comments #

MonoidalAction m k => Functor (Writer :: m -> k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

map :: forall (a :: m) (b :: m). (a ~> b) -> (Writer a :: k -> k -> Type) ~> (Writer b :: k -> k -> Type) Source Comments #

(Monoid w, MonoidalAction m k) => Promonad (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

id :: forall (a :: k). Ob a => Writer w a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). Writer w b c -> Writer w a b -> Writer w a c Source Comments #

(Comonoid w, MonoidalAction m k) => Procomonad (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

extract :: (Writer w :: k -> k -> Type) :~> ((~>) :: CAT k) Source Comments #

duplicate :: (Writer w :: k -> k -> Type) :~> ((Writer w :: k -> k -> Type) :.: (Writer w :: k -> k -> Type)) Source Comments #