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
Monoidal KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Unit = 'K ()
type (l :: KIND) ** (r :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (l :: KIND) ** (r :: KIND) = 'K (UN 'K l, UN 'K r)

Methods

leftUnitor :: forall (a :: KIND). Ob a => ((Unit :: KIND) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: KIND). Ob a => a ~> ((Unit :: KIND) ** a) Source Comments #

rightUnitor :: forall (a :: KIND). Ob a => (a ** (Unit :: KIND)) ~> a Source Comments #

rightUnitorInv :: forall (a :: KIND). Ob a => a ~> (a ** (Unit :: KIND)) Source Comments #

associator :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

SymMonoidal KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

swap' :: forall (a :: KIND) (a' :: KIND) (b :: KIND) (b' :: KIND). (a ~> a') -> (b ~> b') -> (a ** b) ~> (b' ** a') Source Comments #

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))
HasBinaryCoproducts 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 (COPRODUCT l r)

Methods

lft :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => a ~> (a || b) Source Comments #

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

rgt :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => b ~> (a || b) Source Comments #

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

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

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

HasBinaryProducts KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

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

Defined in Proarrow.Category.Instance.Cat

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

Methods

fst :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => (a && b) ~> a Source Comments #

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

snd :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => (a && b) ~> b Source Comments #

snd' :: forall (a :: KIND) (b :: KIND) (b' :: KIND). Obj a -> (b ~> 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 #

CompactClosed KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

distribDual :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => Dual (a ** b) ~> (Dual a ** Dual b) Source Comments #

dualUnit :: Dual (Unit :: KIND) ~> (Unit :: KIND) Source Comments #

StarAutonomous KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type Dual ('K a :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Dual ('K a :: KIND) = 'K (OPPOSITE a)

Methods

dual :: forall (a :: KIND) (b :: KIND). (a ~> b) -> Dual b ~> Dual a Source Comments #

dualInv :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments #

linDist :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments #

linDistInv :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments #

Closed KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type ('K a :: KIND) ~~> ('K b :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type ('K a :: KIND) ~~> ('K b :: KIND) = 'K (b, OPPOSITE a)

Methods

curry' :: forall (a :: KIND) (b :: KIND) (c :: KIND). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #

uncurry' :: forall (b :: KIND) (c :: KIND) (a :: KIND). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #

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

HasInitialObject KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

initiate :: forall (a :: KIND). Ob a => (InitialObject :: KIND) ~> a Source Comments #

initiate' :: forall (a' :: KIND) (a :: KIND). (a' ~> a) -> (InitialObject :: KIND) ~> a 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

type TerminalObject = 'K ()

Methods

terminate :: forall (a :: KIND). Ob a => a ~> (TerminalObject :: KIND) Source Comments #

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

TracedMonoidalProfunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

trace :: forall (u :: KIND) (x :: KIND) (y :: KIND). (Ob x, Ob y, Ob u) => Cat (x ** u) (y ** u) -> Cat x y Source Comments #

trace' :: forall (x :: KIND) (x' :: KIND) (y :: KIND) (y' :: KIND) (u :: KIND) (u' :: KIND). (x ~> x') -> (y ~> y') -> (u ~> u') -> Cat (x' ** u') (y ** u) -> Cat x y' 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 #

MonoidalProfunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

par0 :: Cat (Unit :: KIND) (Unit :: KIND) Source Comments #

par :: forall (x1 :: KIND) (x2 :: KIND) (y1 :: KIND) (y2 :: KIND). Cat x1 x2 -> Cat y1 y2 -> Cat (x1 ** y1) (x2 ** y2) 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 Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Unit = 'K ()
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

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

Defined in Proarrow.Category.Instance.Cat

type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type TerminalObject = 'K ()
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 (l :: KIND) ** (r :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

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

Defined in Proarrow.Category.Instance.Cat

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

Defined in Proarrow.Category.Instance.Cat

type UN 'K ('K k :: KIND) = k
type Dual ('K a :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Dual ('K a :: KIND) = 'K (OPPOSITE a)
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 (COPRODUCT l r)
type ('K a :: KIND) ~~> ('K b :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type ('K a :: KIND) ~~> ('K b :: KIND) = 'K (b, OPPOSITE a)

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

Constructors

Cat :: forall {j} {k} (p :: j +-> k). Profunctor p => Cat ('K j) ('K k) 

Instances

Instances details
TracedMonoidalProfunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

trace :: forall (u :: KIND) (x :: KIND) (y :: KIND). (Ob x, Ob y, Ob u) => Cat (x ** u) (y ** u) -> Cat x y Source Comments #

trace' :: forall (x :: KIND) (x' :: KIND) (y :: KIND) (y' :: KIND) (u :: KIND) (u' :: KIND). (x ~> x') -> (y ~> y') -> (u ~> u') -> Cat (x' ** u') (y ** u) -> Cat x y' 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 #

MonoidalProfunctor Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

par0 :: Cat (Unit :: KIND) (Unit :: KIND) Source Comments #

par :: forall (x1 :: KIND) (x2 :: KIND) (y1 :: KIND) (y2 :: KIND). Cat x1 x2 -> Cat y1 y2 -> Cat (x1 ** y1) (x2 ** y2) 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 :: ()) (b :: k) where Source Comments #

Constructors

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

Instances

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

CategoryOf k => Representable (Terminate :: () -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: ()) (b :: k). Terminate a b -> a ~> ((Terminate :: () -> k -> Type) % b) Source Comments #

tabulate :: forall (b :: k) (a :: ()). Ob b => (a ~> ((Terminate :: () -> k -> Type) % b)) -> Terminate a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> ((Terminate :: () -> k -> Type) % a) ~> ((Terminate :: () -> k -> Type) % b) Source Comments #

type (Terminate :: () -> k -> Type) % (a :: k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (Terminate :: () -> k -> Type) % (a :: k) = '()

data Initiate (a :: k) (b :: VOID) where Source Comments #

Constructors

Initiate :: forall {k} (a :: k) (b :: VOID). (Ob a, Ob b) => Void -> Initiate a b 

Instances

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

CategoryOf k => Representable (Initiate :: k -> VOID -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: k) (b :: VOID). Initiate a b -> a ~> ((Initiate :: k -> VOID -> Type) % b) Source Comments #

tabulate :: forall (b :: VOID) (a :: k). Ob b => (a ~> ((Initiate :: k -> VOID -> Type) % b)) -> Initiate a b Source Comments #

repMap :: forall (a :: VOID) (b :: VOID). (a ~> b) -> ((Initiate :: k -> VOID -> Type) % a) ~> ((Initiate :: k -> VOID -> Type) % b) Source Comments #

type (Initiate :: k -> VOID -> Type) % (a :: VOID) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (Initiate :: k -> VOID -> Type) % (a :: VOID) = Any :: k

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 #

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

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: j) (b :: (j, k)). FstCat a b -> a ~> ((FstCat :: j -> (j, k) -> Type) % b) Source Comments #

tabulate :: forall (b :: (j, k)) (a :: j). Ob b => (a ~> ((FstCat :: j -> (j, k) -> Type) % b)) -> FstCat a b Source Comments #

repMap :: forall (a :: (j, k)) (b :: (j, k)). (a ~> b) -> ((FstCat :: j -> (j, k) -> Type) % a) ~> ((FstCat :: j -> (j, k) -> Type) % b) Source Comments #

type (FstCat :: j -> (j, k) -> Type) % ('(a, b) :: (j, k)) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (FstCat :: j -> (j, k) -> Type) % ('(a, b) :: (j, k)) = a

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 #

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

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: k) (b :: (j, k)). SndCat a b -> a ~> ((SndCat :: k -> (j, k) -> Type) % b) Source Comments #

tabulate :: forall (b :: (j, k)) (a :: k). Ob b => (a ~> ((SndCat :: k -> (j, k) -> Type) % b)) -> SndCat a b Source Comments #

repMap :: forall (a :: (j, k)) (b :: (j, k)). (a ~> b) -> ((SndCat :: k -> (j, k) -> Type) % a) ~> ((SndCat :: k -> (j, k) -> Type) % b) Source Comments #

type (SndCat :: k -> (j, k) -> Type) % ('(a, b) :: (j, k)) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (SndCat :: k -> (j, k) -> Type) % ('(a, b) :: (j, k)) = b

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

Constructors

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

Instances

Instances details
(Representable p, Representable q) => Representable (p :&&&: q :: (i, j2) -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: (i, j2)) (b :: j1). (p :&&&: q) a b -> a ~> ((p :&&&: q) % b) Source Comments #

tabulate :: forall (b :: j1) (a :: (i, j2)). Ob b => (a ~> ((p :&&&: q) % b)) -> (p :&&&: q) a b Source Comments #

repMap :: forall (a :: j1) (b :: j1). (a ~> b) -> ((p :&&&: q) % a) ~> ((p :&&&: q) % b) Source Comments #

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

type (p :&&&: q :: (i, j2) -> j1 -> Type) % (a :: j1) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (p :&&&: q :: (i, j2) -> j1 -> Type) % (a :: j1) = '(p % a, q % a)

data LftCat (a :: COPRODUCT j k) (b :: j) where Source Comments #

Constructors

LftCat :: forall {j} {k} (a1 :: j) (b :: j). (a1 ~> b) -> LftCat ('L a1 :: COPRODUCT j k) b 

Instances

Instances details
(CategoryOf j, CategoryOf k) => Representable (LftCat :: COPRODUCT j k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: COPRODUCT j k) (b :: j). LftCat a b -> a ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b) Source Comments #

tabulate :: forall (b :: j) (a :: COPRODUCT j k). Ob b => (a ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b)) -> LftCat a b Source Comments #

repMap :: forall (a :: j) (b :: j). (a ~> b) -> ((LftCat :: COPRODUCT j k -> j -> Type) % a) ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b) Source Comments #

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

type (LftCat :: COPRODUCT j k -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (LftCat :: COPRODUCT j k -> j -> Type) % (a :: j) = 'L a :: COPRODUCT j k

data RgtCat (a :: COPRODUCT j k) (b :: k) where Source Comments #

Constructors

RgtCat :: forall {k} {j} (a1 :: k) (b :: k). (a1 ~> b) -> RgtCat ('R a1 :: COPRODUCT j k) b 

Instances

Instances details
(CategoryOf j, CategoryOf k) => Representable (RgtCat :: COPRODUCT j k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: COPRODUCT j k) (b :: k). RgtCat a b -> a ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b) Source Comments #

tabulate :: forall (b :: k) (a :: COPRODUCT j k). Ob b => (a ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b)) -> RgtCat a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> ((RgtCat :: COPRODUCT j k -> k -> Type) % a) ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b) Source Comments #

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

type (RgtCat :: COPRODUCT j k -> k -> Type) % (a :: k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (RgtCat :: COPRODUCT j k -> k -> Type) % (a :: k) = 'R a :: COPRODUCT j k

data ((p :: i +-> k) :|||: (q :: j +-> k)) (a :: k) (b :: COPRODUCT i j) where Source Comments #

Constructors

InjLP :: forall {i} {k} {j} (p :: i +-> k) (a :: k) (b1 :: i) (q :: j +-> k). p a b1 -> (p :|||: q) a ('L b1 :: COPRODUCT i j) 
InjRP :: forall {j} {k} {i} (q :: j +-> k) (a :: k) (b1 :: j) (p :: i +-> k). q a b1 -> (p :|||: q) a ('R b1 :: COPRODUCT i j) 

Instances

Instances details
(Profunctor p, Profunctor q) => Profunctor (p :|||: q :: j1 -> COPRODUCT i j2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: j1) (a :: j1) (b :: COPRODUCT i j2) (d :: COPRODUCT i j2). (c ~> a) -> (b ~> d) -> (p :|||: q) a b -> (p :|||: q) c d Source Comments #

(\\) :: forall (a :: j1) (b :: COPRODUCT i j2) r. ((Ob a, Ob b) => r) -> (p :|||: q) a b -> r Source Comments #

(Representable p, Representable q) => Representable (p :|||: q :: k -> COPRODUCT i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: k) (b :: COPRODUCT i j). (p :|||: q) a b -> a ~> ((p :|||: q) % b) Source Comments #

tabulate :: forall (b :: COPRODUCT i j) (a :: k). Ob b => (a ~> ((p :|||: q) % b)) -> (p :|||: q) a b Source Comments #

repMap :: forall (a :: COPRODUCT i j) (b :: COPRODUCT i j). (a ~> b) -> ((p :|||: q) % a) ~> ((p :|||: q) % b) Source Comments #

type (p :|||: q :: k -> COPRODUCT i j -> Type) % ('L a :: COPRODUCT i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (p :|||: q :: k -> COPRODUCT i j -> Type) % ('L a :: COPRODUCT i j) = p % a
type (p :|||: q :: k -> COPRODUCT i j -> Type) % ('R a :: COPRODUCT i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (p :|||: q :: k -> COPRODUCT i j -> Type) % ('R a :: COPRODUCT i j) = q % a

data Swap (p :: h +-> i) (q :: j +-> k) (a :: (k, i)) (b :: (h, j)) where Source Comments #

Constructors

Swap :: forall {h} {i} (p :: h +-> i) (a1 :: i) (b1 :: h) (q1 :: h +-> i) (c :: i) (d :: h). p a1 b1 -> q1 c d -> Swap p q1 '(a1, c) '(d, b1) 

Instances

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

data Curry (p :: (i, j) +-> k) (a :: (k, OPPOSITE j)) (b :: i) where Source Comments #

Constructors

Curry :: forall {i} {j} {k} (p :: (i, j) +-> k) (c :: k) (b :: i) (b1 :: j). p c '(b, b1) -> Curry p '(c, 'OP b1) b 

Instances

Instances details
(Profunctor p, CategoryOf i, CategoryOf j) => Profunctor (Curry p :: (k, OPPOSITE j) -> i -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

data Uncurry (p :: i +-> (k, OPPOSITE j)) (a :: k) (b :: (i, j)) where Source Comments #

Constructors

Uncurry :: forall {i} {k} {j} (p :: i +-> (k, OPPOSITE j)) (a :: k) (b1 :: j) (a1 :: i). p '(a, 'OP b1) a1 -> Uncurry p a '(a1, b1) 

Instances

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

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

Constructors

DistribDual :: forall {j} {k} (c :: j) (a1 :: j) (d :: k) (b1 :: k). (c ~> a1) -> (d ~> b1) -> DistribDual '('OP a1, 'OP b1) ('OP '(c, d)) 

Instances

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

data DualUnit (a :: ()) (b :: OPPOSITE ()) where Source Comments #

Constructors

DualUnit :: DualUnit '() ('OP '()) 

Instances

Instances details
Profunctor DualUnit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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