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

Proarrow.Category.Monoidal.Endo

Documentation

data ENDO (kk :: CAT j) (k :: j) Source Comments #

Constructors

E (kk k k) 

Instances

Instances details
(Bicategory kk, Ob0 kk k) => Monoidal (ENDO kk k) Source Comments #

The monoidal subcategory of a bicategory for a single object.

Instance details

Defined in Proarrow.Category.Monoidal.Endo

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type Unit = 'E (I :: kk k k)

Methods

par :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k) (d :: ENDO kk k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments #

leftUnitor :: forall (a :: ENDO kk k). Obj a -> ((Unit :: ENDO kk k) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: ENDO kk k). Obj a -> a ~> ((Unit :: ENDO kk k) ** a) Source Comments #

rightUnitor :: forall (a :: ENDO kk k). Obj a -> (a ** (Unit :: ENDO kk k)) ~> a Source Comments #

rightUnitorInv :: forall (a :: ENDO kk k). Obj a -> a ~> (a ** (Unit :: ENDO kk k)) Source Comments #

associator :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

(Bicategory kk, Ob0 kk k) => CategoryOf (ENDO kk k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type (~>) = Endo :: ENDO kk k -> ENDO kk k -> Type
(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

id :: forall (a :: ENDO kk k). Ob a => Endo a a Source Comments #

(.) :: forall (b :: ENDO kk k) (c :: ENDO kk k) (a :: ENDO kk k). Endo b c -> Endo a b -> Endo a c Source Comments #

(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

dimap :: forall (c :: ENDO kk k) (a :: ENDO kk k) (b :: ENDO kk k) (d :: ENDO kk k). (c ~> a) -> (b ~> d) -> Endo a b -> Endo c d Source Comments #

(\\) :: forall (a :: ENDO kk k) (b :: ENDO kk k) r. ((Ob a, Ob b) => r) -> Endo a b -> r Source Comments #

(Bicategory kk, Comonad c) => Comonoid ('E c :: ENDO kk a) Source Comments #

Comonads are comonoids in the category of endo-1-cells.

Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

counit :: 'E c ~> (Unit :: ENDO kk a) Source Comments #

comult :: 'E c ~> ('E c ** 'E c) Source Comments #

(Bicategory kk, Monad m) => Monoid ('E m :: ENDO kk a) Source Comments #

Monads are monoids in the category of endo-1-cells.

Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

mempty :: (Unit :: ENDO kk a) ~> 'E m Source Comments #

mappend :: ('E m ** 'E m) ~> 'E m Source Comments #

type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) = p
type Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type Unit = 'E (I :: kk k k)
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type (~>) = Endo :: ENDO kk k -> ENDO kk k -> Type
type Ob (p :: ENDO kk k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type Ob (p :: ENDO kk k) = (Is ('E :: kk k k -> ENDO kk k) p, Ob (UN ('E :: kk k k -> ENDO kk k) p))
type ('E p :: ENDO kk k) ** ('E q :: ENDO kk k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type ('E p :: ENDO kk k) ** ('E q :: ENDO kk k) = 'E (O p q)

data Endo (p :: ENDO kk k) (q :: ENDO kk k) where Source Comments #

Constructors

Endo :: forall {j} {kk :: CAT j} {k :: j} (p1 :: kk k k) (q1 :: kk k k). (p1 ~> q1) -> Endo ('E p1) ('E q1) 

Instances

Instances details
(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

id :: forall (a :: ENDO kk k). Ob a => Endo a a Source Comments #

(.) :: forall (b :: ENDO kk k) (c :: ENDO kk k) (a :: ENDO kk k). Endo b c -> Endo a b -> Endo a c Source Comments #

(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

dimap :: forall (c :: ENDO kk k) (a :: ENDO kk k) (b :: ENDO kk k) (d :: ENDO kk k). (c ~> a) -> (b ~> d) -> Endo a b -> Endo c d Source Comments #

(\\) :: forall (a :: ENDO kk k) (b :: ENDO kk k) r. ((Ob a, Ob b) => r) -> Endo a b -> r Source Comments #

mkEndo :: forall {j} (kk :: j -> j -> Type) (k :: j) (p :: kk k k) (q :: kk k k). CategoryOf (kk k k) => (p ~> q) -> Endo ('E p) ('E q) Source Comments #