proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Promonad.Writer

Documentation

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

Constructors

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

Instances

Instances details
(Ob w, SelfAction k) => Strong k (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

(Monoid w, SymMonoidal k) => MonoidalProfunctor (Writer w :: k -> k -> Type) Source Github #

Note: This is only premonoidal, not monoidal, unless the monoid is commutative.

Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

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 Github #

(Ob w, Monoidal k) => Profunctor (Writer w :: k -> k -> Type) Source Github # 
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 Github #

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

(Ob w, SelfAction k, CompactClosed k) => Corepresentable (Writer w :: k -> k -> Type) Source Github #

The cowriter comonad given the Promonad instance.

Instance details

Defined in Proarrow.Promonad.Writer

Methods

coindex :: forall (a :: k) (b :: k). Writer w a b -> (Writer w %% a) ~> b Source Github #

cotabulate :: forall (a :: k) (b :: k). Ob a => ((Writer w %% a) ~> b) -> Writer w a b Source Github #

corepMap :: forall (a :: k) (b :: k). (a ~> b) -> (Writer w %% a) ~> (Writer w %% b) Source Github #

(Ob w, Monoidal k) => Representable (Writer w :: k -> k -> Type) Source Github #

The writer monad given the Promonad instance.

Instance details

Defined in Proarrow.Promonad.Writer

Methods

index :: forall (a :: k) (b :: k). Writer w a b -> a ~> (Writer w % b) Source Github #

tabulate :: forall (b :: k) (a :: k). Ob b => (a ~> (Writer w % b)) -> Writer w a b Source Github #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> (Writer w % a) ~> (Writer w % b) Source Github #

(Ob r, Monoidal k) => Proadjunction (Writer r :: k -> k -> Type) (Reader ('OP r) :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

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

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

(SelfAction k, Ob a) => IsWriter (Writer a :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

Associated Types

type WithReader (Writer a :: k -> k -> Type) 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

type WithReader (Writer a :: k -> k -> Type) = Reader ('OP a)
(Monoid w, Monoidal k) => Traversable (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

traverse :: forall (p :: k +-> k). StrongDistributiveProfunctor p => (Writer w :.: p) :~> (p :.: Writer w) Source Github #

(Monoid w, Monoidal k) => Promonad (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

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

(Comonoid w, Monoidal k) => Procomonad (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Monoidal k => Functor (Writer :: k -> k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

map :: forall (a :: k) (b :: k). (a ~> b) -> Writer a ~> Writer b Source Github #

type (Writer w :: k -> k -> Type) %% (a :: k) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

type (Writer w :: k -> k -> Type) %% (a :: k) = ExpSA w a
type (Writer w :: k -> k -> Type) % (a :: k) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

type (Writer w :: k -> k -> Type) % (a :: k) = w ** a
type WithReader (Writer a :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

type WithReader (Writer a :: k -> k -> Type) = Reader ('OP a)

writerComp :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => (Writer r :.: Writer s) ~> Writer (r ** s) Source Github #

writerDay :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => Day (Writer r) (Writer s) ~> Writer (r ** s) Source Github #