License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
- data I1 a
- data I2 a
- data (:++:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where
- data Inj1 c1 c2 = Inj1
- data Inj2 c1 c2 = Inj2
- data f1 :+++: f2 = f1 :+++: f2
- data CodiagCoprod k = CodiagCoprod
- data Cotuple1 c1 c2 a = Cotuple1 (Obj c1 a)
- data Cotuple2 c1 c2 a = Cotuple2 (Obj c2 a)
- data (:>>:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where
- data NatAsFunctor f g = NatAsFunctor (Nat (Dom f) (Cod f) f g)
Documentation
type (CodiagCoprod k) :% (I1 a) Source # | |
type ((:+++:) f1 f2) :% (I1 a) Source # | |
type (PrimRec z s) :% (I1 ()) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I1 a) (I1 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I1 a) (I1 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type (NatAsFunctor f g) :% (a, I1 ()) Source # | |
type (Cotuple2 c1 c2 a2) :% (I1 a) Source # | |
type (Cotuple1 c1 c2 a1) :% (I1 a) Source # | |
type (CodiagCoprod k) :% (I2 a) Source # | |
type ((:+++:) f1 f2) :% (I2 a) Source # | |
type (PrimRec z s) :% (I2 n) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I2 a) (I2 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I2 a) (I2 b) Source # | |
type (NatAsFunctor f g) :% (a, I2 ()) Source # | |
type (Cotuple2 c1 c2 a2) :% (I2 a) Source # | |
type (Cotuple1 c1 c2 a1) :% (I2 a) Source # | |
data (:++:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where Source #
(Category c1, Category c2) => Category ((:++:) c1 c2) Source # | The coproduct category of categories |
(HasColimits i k, HasColimits j k, HasBinaryCoproducts k) => HasColimits ((:++:) i j) k Source # | If |
(HasLimits i k, HasLimits j k, HasBinaryProducts k) => HasLimits ((:++:) i j) k Source # | If |
type ColimitFam ((:++:) i j) k f Source # | |
type LimitFam ((:++:) i j) k f Source # | |
f1 :+++: f2 |
data CodiagCoprod k Source #
Category k => Functor (CodiagCoprod k) Source # |
|
type Dom (CodiagCoprod k) Source # | |
type Cod (CodiagCoprod k) Source # | |
type (CodiagCoprod k) :% (I1 a) Source # | |
type (CodiagCoprod k) :% (I2 a) Source # | |
data Cotuple1 c1 c2 a Source #
(Category c1, Category c2) => Functor (Cotuple1 c1 c2 a1) Source # |
|
type Dom (Cotuple1 c1 c2 a1) Source # | |
type Cod (Cotuple1 c1 c2 a1) Source # | |
type (Cotuple1 c1 c2 a1) :% (I1 a) Source # | |
type (Cotuple1 c1 c2 a1) :% (I2 a) Source # | |
data Cotuple2 c1 c2 a Source #
(Category c1, Category c2) => Functor (Cotuple2 c1 c2 a2) Source # |
|
type Dom (Cotuple2 c1 c2 a2) Source # | |
type Cod (Cotuple2 c1 c2 a2) Source # | |
type (Cotuple2 c1 c2 a2) :% (I1 a) Source # | |
type (Cotuple2 c1 c2 a2) :% (I2 a) Source # | |
data (:>>:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where Source #
I1A :: c1 a1 b1 -> (:>>:) c1 c2 (I1 a1) (I1 b1) | |
I12 :: Obj c1 a -> Obj c2 b -> (:>>:) c1 c2 (I1 a) (I2 b) | |
I2A :: c2 a2 b2 -> (:>>:) c1 c2 (I2 a2) (I2 b2) |
(Category c1, Category c2) => Category ((:>>:) c1 c2) Source # | The directed coproduct category of categories |
(HasBinaryCoproducts c1, HasBinaryCoproducts c2) => HasBinaryCoproducts ((:>>:) c1 c2) Source # | |
(HasBinaryProducts c1, HasBinaryProducts c2) => HasBinaryProducts ((:>>:) c1 c2) Source # | |
(HasInitialObject c1, Category c2) => HasInitialObject ((:>>:) c1 c2) Source # | The initial object of the direct coproduct of categories is the initial object of the initial category. |
(Category c1, HasTerminalObject c2) => HasTerminalObject ((:>>:) c1 c2) Source # | The terminal object of the direct coproduct of categories is the terminal object of the terminal category. |
(HasTerminalObject ((:>>:) i j), Category k) => HasColimits ((:>>:) i j) k Source # | The colimit of any diagram with a terminal object, has the limit at the terminal object. |
(HasInitialObject ((:>>:) i j), Category k) => HasLimits ((:>>:) i j) k Source # | The limit of any diagram with an initial object, has the limit at the initial object. |
type InitialObject ((:>>:) c1 c2) Source # | |
type TerminalObject ((:>>:) c1 c2) Source # | |
type ColimitFam ((:>>:) i j) k f Source # | |
type LimitFam ((:>>:) i j) k f Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I1 a) (I1 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type BinaryCoproduct ((:>>:) c1 c2) (I2 a) (I2 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I1 a) (I1 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I1 a) (I2 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I2 a) (I1 b) Source # | |
type BinaryProduct ((:>>:) c1 c2) (I2 a) (I2 b) Source # | |
data NatAsFunctor f g Source #
NatAsFunctor (Nat (Dom f) (Cod f) f g) |
(Functor f, Functor g, (~) (* -> * -> *) (Dom f) (Dom g), (~) (* -> * -> *) (Cod f) (Cod g)) => Functor (NatAsFunctor f g) Source # | A natural transformation |
type Dom (NatAsFunctor f g) Source # | |
type Cod (NatAsFunctor f g) Source # | |
type (NatAsFunctor f g) :% (a, I1 ()) Source # | |
type (NatAsFunctor f g) :% (a, I2 ()) Source # | |