Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Product Category
(Category k p, Category k1 q, ProductOb k k1 p q a) => Functor ((,) k k) * (Product k k p q a) | |
(Category k p, Category k1 q) => Functor ((,) k k) ((,) k k -> *) (Product k k p q) | |
(Category k p, Category k1 q) => Category' ((,) k k) (Product k k p q) | |
type Dom ((,) k k1) * (Product k k1 p q a) = Product k k1 (Dom2 k * k p) (Dom2 k1 * k1 q) | |
type Cod ((,) k k1) * (Product k k1 p q a) = (->) | |
type Dom ((,) k k1) ((,) k k1 -> *) (Product k k1 p q) = Op ((,) k k1) (Product k k1 (Opd k (k -> *) p) (Opd k1 (k1 -> *) q)) | |
type Cod ((,) k k1) ((,) k k1 -> *) (Product k k1 p q) = Nat ((,) k k1) * (Product k k1 (Dom2 k * k p) (Dom2 k1 * k1 q)) (->) | |
type Ob ((,) k k1) (Product k k1 p q) = ProductOb k k1 p q |
Coproduct Category
data Coproduct c d a b where Source
(Category k p, Category k1 q) => Functor (Either k k) * (Coproduct k k p q a) | |
(Category k p, Category k1 q) => Functor (Either k k) (Either k k -> *) (Coproduct k k p q) | |
(Category k p, Category k1 q) => Category' (Either k k) (Coproduct k k p q) | |
type Dom (Either k k1) * (Coproduct k k1 p q a) = Coproduct k k1 p q | |
type Cod (Either k k1) * (Coproduct k k1 p q a) = (->) | |
type Dom (Either k k1) (Either k k1 -> *) (Coproduct k k1 p q) = Op (Either k k1) (Coproduct k k1 p q) | |
type Cod (Either k k1) (Either k k1 -> *) (Coproduct k k1 p q) = Nat (Either k k1) * (Coproduct k k1 p q) (->) | |
type Ob (Either k k1) (Coproduct k k1 p q) = CoproductOb k k1 p q |
class CoproductOb p q a where Source
side :: Endo (Coproduct p q) a -> (forall x. (a ~ Left x, Ob p x) => r) -> (forall y. (a ~ Right y, Ob q y) => r) -> r Source
coproductId :: Endo (Coproduct p q) a Source
(Category j q, Ob j q y) => CoproductOb i j p q (Right i j y) | |
(Category i p, Ob i p x) => CoproductOb i j p q (Left i j x) |
Unit Category
Functor k * (Unit k k a) | |
FullyFaithful k * (Unit k k a) | |
Category' k (Unit k k) | |
Functor k (k -> *) (Unit k k) | |
FullyFaithful k (k -> *) (Unit k k) | |
type Dom k1 * (Unit k k1 a) = Unit k1 k1 | |
type Cod k1 * (Unit k k1 a) = (->) | |
type Ob k (Unit k k) = Vacuous k (Unit k k) | |
type Dom k (k1 -> *) (Unit k k1) = Op k (Unit k k) | |
type Cod k (k1 -> *) (Unit k k1) = Nat k1 * (Unit k1 k1) (->) |
Empty Category
data Void :: *
A logically uninhabited data type.
Eq Void | |
Data Void | |
Ord Void | |
Read Void | Reading a |
Show Void | |
Ix Void | |
Generic Void | |
Exception Void | |
Hashable Void | |
Semigroup Void | |
Typeable * Void | |
Comonoid' * Either Void | |
Cosemigroup * Either Void | |
Monoid' * Either Void | |
Semigroup * Either Void | |
Semigroup * (,) Void | |
type Rep Void = D1 D1Void (C1 C1_0Void (S1 NoSelector (Rec0 Void))) |