Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data PRODK (jj :: CAT j) (kk :: CAT k) (j1 :: (j, k)) (k1 :: (j, k)) where Source Comments #
PROD :: forall {j} {k} (jj :: CAT j) (j1 :: (j, k)) (k1 :: (j, k)) (kk :: CAT k). jj (Fst j1) (Fst k1) -> kk (Snd j1) (Snd k1) -> PRODK jj kk j1 k1 |
Instances
(Bicategory jj, Bicategory kk) => Bicategory (PRODK jj kk :: (j, k) -> (j, k) -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product iObj :: forall (i :: (j, k)). Ob0 (PRODK jj kk) i => Obj (I :: PRODK jj kk i i) Source Comments # o :: forall {i :: (j, k)} (j0 :: (j, k)) (k0 :: (j, k)) (a :: PRODK jj kk j0 k0) (b :: PRODK jj kk j0 k0) (c :: PRODK jj kk i j0) (d :: PRODK jj kk i j0). (a ~> b) -> (c ~> d) -> O a c ~> O b d Source Comments # (\\\) :: forall (i :: (j, k)) (j0 :: (j, k)) (ps :: PRODK jj kk i j0) (qs :: PRODK jj kk i j0) r. ((Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob ps, Ob qs) => r) -> (ps ~> qs) -> r Source Comments # leftUnitor :: forall {i :: (j, k)} {j0 :: (j, k)} (a :: PRODK jj kk i j0). (Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob a) => O (I :: PRODK jj kk j j) a ~> a Source Comments # leftUnitorInv :: forall {i :: (j, k)} {j0 :: (j, k)} (a :: PRODK jj kk i j0). (Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob a) => a ~> O (I :: PRODK jj kk j j) a Source Comments # rightUnitor :: forall {i :: (j, k)} {j0 :: (j, k)} (a :: PRODK jj kk i j0). (Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob a) => O a (I :: PRODK jj kk i i) ~> a Source Comments # rightUnitorInv :: forall {i :: (j, k)} {j0 :: (j, k)} (a :: PRODK jj kk i j0). (Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob a) => a ~> O a (I :: PRODK jj kk i i) Source Comments # associator :: forall {h :: (j, k)} {i :: (j, k)} {j0 :: (j, k)} {k0 :: (j, k)} (a :: PRODK jj kk j0 k0) (b :: PRODK jj kk i j0) (c :: PRODK jj kk h i). (Ob0 (PRODK jj kk) h, Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob0 (PRODK jj kk) k0, Ob a, Ob b, Ob c) => O (O a b) c ~> O a (O b c) Source Comments # associatorInv :: forall {h :: (j, k)} {i :: (j, k)} {j0 :: (j, k)} {k0 :: (j, k)} (a :: PRODK jj kk j0 k0) (b :: PRODK jj kk i j0) (c :: PRODK jj kk h i). (Ob0 (PRODK jj kk) h, Ob0 (PRODK jj kk) i, Ob0 (PRODK jj kk) j0, Ob0 (PRODK jj kk) k0, Ob a, Ob b, Ob c) => O a (O b c) ~> O (O a b) c Source Comments # | |
(Comonad (PRODFST m), Comonad (PRODSND m), Ob m) => Comonad (m :: PRODK jj kk a a) Source Comments # | |
(Monad (PRODFST m), Monad (PRODSND m), Ob m) => Monad (m :: PRODK jj kk a a) Source Comments # | |
(Adjunction (PRODFST l) (PRODFST r), Adjunction (PRODSND l) (PRODSND r), Ob l, Ob r) => Adjunction (l :: PRODK jj kk c d) (r :: PRODK jj kk d c) Source Comments # | |
(Equipment hj vj, Equipment hk vk) => Equipment (PRODK hj hk :: (j, k) -> (j, k) -> Type) (PRODK vj vk :: (j, k) -> (j, k) -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product mapConjoint :: forall {j0 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j0 k0) (g :: PRODK vj vk j0 k0). (f ~> g) -> Conjoint (PRODK hj hk) g ~> Conjoint (PRODK hj hk) f Source Comments # conjToId :: forall (k0 :: (j, k)). Ob0 (PRODK vj vk) k0 => Conjoint (PRODK hj hk) (I :: PRODK vj vk k k) ~> (I :: PRODK hj hk k k) Source Comments # conjFromId :: forall (k0 :: (j, k)). Ob0 (PRODK vj vk) k0 => (I :: PRODK hj hk k k) ~> Conjoint (PRODK hj hk) (I :: PRODK vj vk k k) Source Comments # conjToCompose :: forall {k1 :: (j, k)} {j0 :: (j, k)} {k2 :: (j, k)} (f :: PRODK vj vk j0 k2) (g :: PRODK vj vk k1 j0). Obj f -> Obj g -> Conjoint (PRODK hj hk) (O f g) ~> O (Conjoint (PRODK hj hk) g) (Conjoint (PRODK hj hk) f) Source Comments # conjFromCompose :: forall {j1 :: (j, k)} {j2 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j2 k0) (g :: PRODK vj vk j1 j2). Obj f -> Obj g -> O (Conjoint (PRODK hj hk) g) (Conjoint (PRODK hj hk) f) ~> Conjoint (PRODK hj hk) (O f g) Source Comments # comConUnit :: forall {j0 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j0 k0). Obj f -> (I :: PRODK hj hk j j) ~> O (Conjoint (PRODK hj hk) f) (Companion (PRODK hj hk) f) Source Comments # comConCounit :: forall {j0 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j0 k0). Obj f -> O (Companion (PRODK hj hk) f) (Conjoint (PRODK hj hk) f) ~> (I :: PRODK hj hk k k) Source Comments # | |
(HasCompanions hj vj, HasCompanions hk vk) => HasCompanions (PRODK hj hk :: (j, k) -> (j, k) -> Type) (PRODK vj vk :: (j, k) -> (j, k) -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product mapCompanion :: forall {j0 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j0 k0) (g :: PRODK vj vk j0 k0). (f ~> g) -> Companion (PRODK hj hk) f ~> Companion (PRODK hj hk) g Source Comments # compToId :: forall (k0 :: (j, k)). Ob0 (PRODK vj vk) k0 => Companion (PRODK hj hk) (I :: PRODK vj vk k k) ~> (I :: PRODK hj hk k k) Source Comments # compFromId :: forall (k0 :: (j, k)). Ob0 (PRODK vj vk) k0 => (I :: PRODK hj hk k k) ~> Companion (PRODK hj hk) (I :: PRODK vj vk k k) Source Comments # compToCompose :: forall {i :: (j, k)} {j0 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j0 k0) (g :: PRODK vj vk i j0). Obj f -> Obj g -> Companion (PRODK hj hk) (O f g) ~> O (Companion (PRODK hj hk) f) (Companion (PRODK hj hk) g) Source Comments # compFromCompose :: forall {j1 :: (j, k)} {j2 :: (j, k)} {k0 :: (j, k)} (f :: PRODK vj vk j2 k0) (g :: PRODK vj vk j1 j2). Obj f -> Obj g -> O (Companion (PRODK hj hk) f) (Companion (PRODK hj hk) g) ~> Companion (PRODK hj hk) (O f g) Source Comments # | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => CategoryOf (PRODK jj kk ik jl) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Promonad (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Profunctor (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product dimap :: forall (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) (d :: PRODK jj kk ik jl). (c ~> a) -> (b ~> d) -> Prod a b -> Prod c d Source Comments # (\\) :: forall (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) r. ((Ob a, Ob b) => r) -> Prod a b -> r Source Comments # | |
type Ob0 (PRODK jj kk :: (j2, k2) -> (j2, k2) -> Type) (jk :: (j1, k1)) Source Comments # | |
type I Source Comments # | |
type O ('PROD a b :: PRODK jj kk j2 k2) ('PROD c d :: PRODK jj kk i j2) Source Comments # | |
type Companion (PRODK hj hk :: (j1, k1) -> (j1, k1) -> Type) (fg :: PRODK vj vk j2 k2) Source Comments # | |
type Conjoint (PRODK hj hk :: (j1, k1) -> (j1, k1) -> Type) (fg :: PRODK vj vk j2 k2) Source Comments # | |
type (~>) Source Comments # | |
type Ob (p :: PRODK jj kk ik jl) Source Comments # | |
data Prod (a :: PRODK jj kk j1 k1) (b :: PRODK jj kk j1 k1) where Source Comments #
Prod | |
|
Instances
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Promonad (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Profunctor (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product dimap :: forall (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) (d :: PRODK jj kk ik jl). (c ~> a) -> (b ~> d) -> Prod a b -> Prod c d Source Comments # (\\) :: forall (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) r. ((Ob a, Ob b) => r) -> Prod a b -> r Source Comments # |