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

Proarrow.Promonad.Writer

Documentation

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

Constructors

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

Instances

Instances details
(BiCCC k, Monoid m) => MonoidalProfunctor (Writer m :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

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

(BiCCC k, Ob m) => Profunctor (Writer m :: 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 m a b -> Writer m c d Source Comments #

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

(BiCCC k, Ob r) => Adjunction (Writer r :: k -> k -> Type) (Reader r :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

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

counit :: (Writer r :.: Reader r) :~> ((~>) :: CAT k) Source Comments #

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

Defined in Proarrow.Promonad.Writer

Methods

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

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

(BiCCC k, Ob m) => Procomonad (Writer m :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer