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

Proarrow.Category.Instance.Cat

Documentation

newtype KIND Source Comments #

Constructors

K Kind 

Instances

Instances details
CategoryOf KIND Source Comments #

The category of categories and profunctors between them.

Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (~>) = Cat
type Ob (c :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Ob (c :: KIND) = (Is 'K c, CategoryOf (UN 'K c))
HasBinaryProducts KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type ('K l :: KIND) && ('K r :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type ('K l :: KIND) && ('K r :: KIND) = 'K (l, r)

Methods

fst' :: forall (a :: KIND) (b :: KIND). Obj a -> Obj b -> (a && b) ~> a Source Comments #

snd' :: forall (a :: KIND) (b :: KIND). Obj a -> Obj b -> (a && b) ~> b Source Comments #

(&&&) :: forall (a :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments #

(***) :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments #

HasTerminalObject KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

terminate' :: forall (a :: KIND). Obj a -> a ~> (TerminalObject :: KIND) Source Comments #

Promonad Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

id :: forall (a :: KIND). Ob a => Cat a a Source Comments #

(.) :: forall (b :: KIND) (c :: KIND) (a :: KIND). Cat b c -> Cat a b -> Cat a c Source Comments #

Profunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: KIND) (a :: KIND) (b :: KIND) (d :: KIND). (c ~> a) -> (b ~> d) -> Cat a b -> Cat c d Source Comments #

(\\) :: forall (a :: KIND) (b :: KIND) r. ((Ob a, Ob b) => r) -> Cat a b -> r Source Comments #

type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (~>) = Cat
type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Ob (c :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Ob (c :: KIND) = (Is 'K c, CategoryOf (UN 'K c))
type UN 'K ('K k :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type UN 'K ('K k :: KIND) = k
type ('K l :: KIND) && ('K r :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type ('K l :: KIND) && ('K r :: KIND) = 'K (l, r)

data Cat (a :: KIND) (b :: KIND) where Source Comments #

Constructors

Cat :: forall j k (p :: PRO j k). Profunctor p => Cat ('K k) ('K j) 

Instances

Instances details
Promonad Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

id :: forall (a :: KIND). Ob a => Cat a a Source Comments #

(.) :: forall (b :: KIND) (c :: KIND) (a :: KIND). Cat b c -> Cat a b -> Cat a c Source Comments #

Profunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: KIND) (a :: KIND) (b :: KIND) (d :: KIND). (c ~> a) -> (b ~> d) -> Cat a b -> Cat c d Source Comments #

(\\) :: forall (a :: KIND) (b :: KIND) r. ((Ob a, Ob b) => r) -> Cat a b -> r Source Comments #

data Terminate (a :: UNIT) (b :: k) where Source Comments #

Constructors

Terminate :: forall {k} (b :: k). Ob b => Terminate 'U b 

Instances

Instances details
CategoryOf k => Profunctor (Terminate :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

data FstCat (a :: j) (b :: (j, k)) where Source Comments #

Constructors

FstCat :: forall {k} {j} (c :: k) (a :: j) (b1 :: j). Ob c => (a ~> b1) -> FstCat a '(b1, c) 

Instances

Instances details
(CategoryOf j, CategoryOf k) => Profunctor (FstCat :: j -> (j, k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: j) (a :: j) (b :: (j, k)) (d :: (j, k)). (c ~> a) -> (b ~> d) -> FstCat a b -> FstCat c d Source Comments #

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

data SndCat (a :: k) (b :: (j, k)) where Source Comments #

Constructors

SndCat :: forall {j} {k} (b1 :: j) (a :: k) (c :: k). Ob b1 => (a ~> c) -> SndCat a '(b1, c) 

Instances

Instances details
(CategoryOf j, CategoryOf k) => Profunctor (SndCat :: k -> (j, k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: k) (a :: k) (b :: (j, k)) (d :: (j, k)). (c ~> a) -> (b ~> d) -> SndCat a b -> SndCat c d Source Comments #

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

data ((p :: PRO i k) :&&&: (q :: PRO j k)) (a :: (i, j)) (b :: k) where Source Comments #

Constructors

(:&&&:) :: forall {i} {k} {j} (p :: PRO i k) (a1 :: i) (b :: k) (q :: PRO j k) (b1 :: j). p a1 b -> q b1 b -> (p :&&&: q) '(a1, b1) b 

Instances

Instances details
(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: (i, j)) (a :: (i, j)) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> (p :&&&: q) a b -> (p :&&&: q) c d Source Comments #

(\\) :: forall (a :: (i, j)) (b :: k) r. ((Ob a, Ob b) => r) -> (p :&&&: q) a b -> r Source Comments #