License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data I1 a
- data I2 a
- data (:++:) :: (Type -> Type -> Type) -> (Type -> Type -> Type) -> Type -> Type -> Type where
- data Inj1 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) = Inj1
- data Inj2 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) = Inj2
- data f1 :+++: f2 = f1 :+++: f2
- data CodiagCoprod (k :: Type -> Type -> Type) = CodiagCoprod
- newtype Cotuple1 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) a = Cotuple1 (Obj c1 a)
- newtype Cotuple2 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) a = Cotuple2 (Obj c2 a)
- data Cograph c d f :: Type -> Type -> Type where
- newtype (c1 :>>: c2) a b = DC (Cograph c1 c2 (Const (Op c1 :**: c2) (->) ()) a b)
- newtype NatAsFunctor f g = NatAsFunctor (Nat (Dom f) (Cod f) f g)
Documentation
Instances
Instances
data (:++:) :: (Type -> Type -> Type) -> (Type -> Type -> Type) -> Type -> Type -> Type where Source #
Instances
(Category c1, Category c2) => Category (c1 :++: c2 :: Type -> Type -> Type) Source # | The coproduct category of categories |
Defined in Data.Category.Coproduct | |
(HasColimits i k, HasColimits j k, HasBinaryCoproducts k) => HasColimits (i :++: j) k Source # | If |
Defined in Data.Category.Limit type ColimitFam (i :++: j) k f Source # | |
(HasLimits i k, HasLimits j k, HasBinaryProducts k) => HasLimits (i :++: j) k Source # | If |
type ColimitFam (i :++: j) k f Source # | |
Defined in Data.Category.Limit type ColimitFam (i :++: j) k f = BinaryCoproduct k (ColimitFam i k (f :.: Inj1 i j)) (ColimitFam j k (f :.: Inj2 i j)) | |
type LimitFam (i :++: j) k f Source # | |
Defined in Data.Category.Limit |
data Inj1 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) Source #
Instances
(Category c1, Category c2) => Functor (Inj1 c1 c2) Source # |
|
type Cod (Inj1 c1 c2) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (Inj1 c1 c2) Source # | |
Defined in Data.Category.Coproduct | |
type (Inj1 c1 c2) :% a Source # | |
Defined in Data.Category.Coproduct |
data Inj2 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) Source #
Instances
(Category c1, Category c2) => Functor (Inj2 c1 c2) Source # |
|
type Cod (Inj2 c1 c2) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (Inj2 c1 c2) Source # | |
Defined in Data.Category.Coproduct | |
type (Inj2 c1 c2) :% a Source # | |
Defined in Data.Category.Coproduct |
f1 :+++: f2 |
data CodiagCoprod (k :: Type -> Type -> Type) Source #
Instances
Category k => Functor (CodiagCoprod k) Source # |
|
Defined in Data.Category.Coproduct type Dom (CodiagCoprod k) :: Type -> Type -> Type Source # type Cod (CodiagCoprod k) :: Type -> Type -> Type Source # type (CodiagCoprod k) :% a Source # (%) :: CodiagCoprod k -> Dom (CodiagCoprod k) a b -> Cod (CodiagCoprod k) (CodiagCoprod k :% a) (CodiagCoprod k :% b) Source # | |
type Cod (CodiagCoprod k) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (CodiagCoprod k) Source # | |
Defined in Data.Category.Coproduct | |
type (CodiagCoprod k) :% (I1 a) Source # | |
Defined in Data.Category.Coproduct | |
type (CodiagCoprod k) :% (I2 a) Source # | |
Defined in Data.Category.Coproduct |
newtype Cotuple1 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) a Source #
Instances
(Category c1, Category c2) => Functor (Cotuple1 c1 c2 a1) Source # |
|
type Cod (Cotuple1 c1 c2 a1) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (Cotuple1 c1 c2 a1) Source # | |
Defined in Data.Category.Coproduct | |
type (Cotuple1 c1 c2 a1) :% (I1 a) Source # | |
Defined in Data.Category.Coproduct | |
type (Cotuple1 c1 c2 a1) :% (I2 a) Source # | |
Defined in Data.Category.Coproduct |
newtype Cotuple2 (c1 :: Type -> Type -> Type) (c2 :: Type -> Type -> Type) a Source #
Instances
(Category c1, Category c2) => Functor (Cotuple2 c1 c2 a2) Source # |
|
type Cod (Cotuple2 c1 c2 a2) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (Cotuple2 c1 c2 a2) Source # | |
Defined in Data.Category.Coproduct | |
type (Cotuple2 c1 c2 a2) :% (I1 a) Source # | |
Defined in Data.Category.Coproduct | |
type (Cotuple2 c1 c2 a2) :% (I2 a) Source # | |
Defined in Data.Category.Coproduct |
data Cograph c d f :: Type -> Type -> Type where Source #
I1A :: c a1 b1 -> Cograph c d f (I1 a1) (I1 b1) | |
I2A :: d a2 b2 -> Cograph c d f (I2 a2) (I2 b2) | |
I12 :: Obj c a -> Obj d b -> f -> (f :% (a, b)) -> Cograph c d f (I1 a) (I2 b) |
Instances
ProfunctorOf c d f => Category (Cograph c d f :: Type -> Type -> Type) Source # | The cograph of the profunctor |
Defined in Data.Category.Coproduct |
newtype (c1 :>>: c2) a b Source #
The directed coproduct category of categories c1
and c2
.
Instances
(Category c1, Category c2) => Category (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Coproduct | |
(HasBinaryCoproducts c1, HasBinaryCoproducts c2) => HasBinaryCoproducts (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Limit type BinaryCoproduct (c1 :>>: c2) x y :: Kind k Source # inj1 :: forall (x :: k) (y :: k). Obj (c1 :>>: c2) x -> Obj (c1 :>>: c2) y -> (c1 :>>: c2) x (BinaryCoproduct (c1 :>>: c2) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (c1 :>>: c2) x -> Obj (c1 :>>: c2) y -> (c1 :>>: c2) y (BinaryCoproduct (c1 :>>: c2) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). (c1 :>>: c2) x a -> (c1 :>>: c2) y a -> (c1 :>>: c2) (BinaryCoproduct (c1 :>>: c2) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). (c1 :>>: c2) a1 b1 -> (c1 :>>: c2) a2 b2 -> (c1 :>>: c2) (BinaryCoproduct (c1 :>>: c2) a1 a2) (BinaryCoproduct (c1 :>>: c2) b1 b2) Source # | |
(HasBinaryProducts c1, HasBinaryProducts c2) => HasBinaryProducts (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Limit type BinaryProduct (c1 :>>: c2) x y :: Kind k Source # proj1 :: forall (x :: k) (y :: k). Obj (c1 :>>: c2) x -> Obj (c1 :>>: c2) y -> (c1 :>>: c2) (BinaryProduct (c1 :>>: c2) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (c1 :>>: c2) x -> Obj (c1 :>>: c2) y -> (c1 :>>: c2) (BinaryProduct (c1 :>>: c2) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). (c1 :>>: c2) a x -> (c1 :>>: c2) a y -> (c1 :>>: c2) a (BinaryProduct (c1 :>>: c2) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). (c1 :>>: c2) a1 b1 -> (c1 :>>: c2) a2 b2 -> (c1 :>>: c2) (BinaryProduct (c1 :>>: c2) a1 a2) (BinaryProduct (c1 :>>: c2) b1 b2) Source # | |
(HasInitialObject c1, Category c2) => HasInitialObject (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | The initial object of the direct coproduct of categories is the initial object of the initial category. |
Defined in Data.Category.Limit type InitialObject (c1 :>>: c2) :: Kind k Source # initialObject :: Obj (c1 :>>: c2) (InitialObject (c1 :>>: c2)) Source # initialize :: forall (a :: k). Obj (c1 :>>: c2) a -> (c1 :>>: c2) (InitialObject (c1 :>>: c2)) a Source # | |
(Category c1, HasTerminalObject c2) => HasTerminalObject (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | The terminal object of the direct coproduct of categories is the terminal object of the terminal category. |
Defined in Data.Category.Limit type TerminalObject (c1 :>>: c2) :: Kind k Source # terminalObject :: Obj (c1 :>>: c2) (TerminalObject (c1 :>>: c2)) Source # terminate :: forall (a :: k). Obj (c1 :>>: c2) a -> (c1 :>>: c2) a (TerminalObject (c1 :>>: c2)) Source # | |
(HasTerminalObject (i :>>: j), Category i, Category j, Category k) => HasColimits (i :>>: j) k Source # | The colimit of any diagram with a terminal object, has the limit at the terminal object. |
Defined in Data.Category.Limit type ColimitFam (i :>>: j) k f Source # | |
(HasInitialObject (i :>>: j), Category i, Category 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 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Limit | |
type TerminalObject (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Limit | |
type BinaryCoproduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I1 a :: Kind (c1 :>>: c2)) (I1 b :: Kind (c1 :>>: c2)) Source # | |
Defined in Data.Category.Limit | |
type BinaryCoproduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I1 a :: Kind (c1 :>>: c2)) (I2 b :: Kind (c1 :>>: c2)) Source # | |
type BinaryCoproduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I2 a :: Kind (c1 :>>: c2)) (I1 b :: Kind (c1 :>>: c2)) Source # | |
type BinaryCoproduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I2 a :: Kind (c1 :>>: c2)) (I2 b :: Kind (c1 :>>: c2)) Source # | |
Defined in Data.Category.Limit | |
type BinaryProduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I1 a :: Kind (c1 :>>: c2)) (I1 b :: Kind (c1 :>>: c2)) Source # | |
Defined in Data.Category.Limit | |
type BinaryProduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I1 a :: Kind (c1 :>>: c2)) (I2 b :: Kind (c1 :>>: c2)) Source # | |
type BinaryProduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I2 a :: Kind (c1 :>>: c2)) (I1 b :: Kind (c1 :>>: c2)) Source # | |
type BinaryProduct (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) (I2 a :: Kind (c1 :>>: c2)) (I2 b :: Kind (c1 :>>: c2)) Source # | |
Defined in Data.Category.Limit | |
type ColimitFam (i :>>: j) k f Source # | |
Defined in Data.Category.Limit | |
type LimitFam (i :>>: j) k f Source # | |
Defined in Data.Category.Limit |
newtype NatAsFunctor f g Source #
NatAsFunctor (Nat (Dom f) (Cod f) f g) |
Instances
(Functor f, Functor g, Dom f ~ Dom g, Cod f ~ Cod g) => Functor (NatAsFunctor f g) Source # | A natural transformation |
Defined in Data.Category.Coproduct type Dom (NatAsFunctor f g) :: Type -> Type -> Type Source # type Cod (NatAsFunctor f g) :: Type -> Type -> Type Source # type (NatAsFunctor f g) :% a Source # (%) :: NatAsFunctor f g -> Dom (NatAsFunctor f g) a b -> Cod (NatAsFunctor f g) (NatAsFunctor f g :% a) (NatAsFunctor f g :% b) Source # | |
type Cod (NatAsFunctor f g) Source # | |
Defined in Data.Category.Coproduct | |
type Dom (NatAsFunctor f g) Source # | |
Defined in Data.Category.Coproduct | |
type (NatAsFunctor f g) :% (a, I1 ()) Source # | |
Defined in Data.Category.Coproduct | |
type (NatAsFunctor f g) :% (a, I2 ()) Source # | |
Defined in Data.Category.Coproduct |