License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Category
class Category k where Source #
An instance of Category k
declares the arrow k
as a category.
Instances
Category Boolean Source # |
|
Category Cube Source # | |
Category Simplex Source # | The (augmented) simplex category is the category of finite ordinals and order preserving maps. |
Category Unit Source # |
|
Category Void Source # |
|
ECategory k => Category (Underlying k :: Type -> Type -> Type) Source # | The underlying category of an enriched category |
Defined in Data.Category.Enriched src :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) a Source # tgt :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) b Source # (.) :: forall (b :: k0) (c :: k0) (a :: k0). Underlying k b c -> Underlying k a b -> Underlying k a c Source # | |
Category (f (Fix f)) => Category (Fix f :: Type -> Type -> Type) Source # |
|
Category (Kleisli m :: Type -> Type -> Type) Source # | The category of Kleisli arrows. |
Eq a => Category (Preorder a :: Type -> Type -> Type) Source # | |
(Category (Dom t), Category (Dom s)) => Category (t :/\: s :: Type -> Type -> Type) Source # | The comma category T \downarrow S |
(Category c1, Category c2) => Category (c1 :++: c2 :: Type -> Type -> Type) Source # | The coproduct category of categories |
Defined in Data.Category.Coproduct | |
(Category c1, Category c2) => Category (c1 :>>: c2 :: Type -> Type -> TYPE LiftedRep) Source # | |
Defined in Data.Category.Coproduct | |
Category (Dialg f g :: Type -> Type -> Type) Source # | The category of (F,G)-dialgebras. |
Category (MonoidAsCategory f m :: Type -> Type -> Type) Source # | A monoid as a category with one object. |
Defined in Data.Category.Monoidal src :: forall (a :: k) (b :: k). MonoidAsCategory f m a b -> Obj (MonoidAsCategory f m) a Source # tgt :: forall (a :: k) (b :: k). MonoidAsCategory f m a b -> Obj (MonoidAsCategory f m) b Source # (.) :: forall (b :: k) (c :: k) (a :: k). MonoidAsCategory f m b c -> MonoidAsCategory f m a b -> MonoidAsCategory f m a c Source # | |
Category d => Category (Nat c d :: Type -> Type -> Type) Source # | Functor category D^C. Objects of D^C are functors from C to D. Arrows of D^C are natural transformations. |
(Category c1, Category c2) => Category (c1 :**: c2 :: Type -> Type -> Type) Source # | The product category of categories |
Defined in Data.Category.Product | |
ProfunctorOf c d f => Category (Cograph c d f :: Type -> Type -> Type) Source # | The cograph of the profunctor |
Defined in Data.Category.Coproduct | |
Category (FUN m :: Type -> Type -> Type) Source # | For |
Category k2 => Category (Op k2 :: k1 -> k1 -> Type) Source # |
|
Category (LTE n :: Fin n -> Fin n -> Type) Source # | |
Category AdjArrow Source # | The category with categories as objects and adjunctions as arrows. |
Category Cat Source # |
|
Whenever objects are required at value level, they are represented by their identity arrows.
type family Kind (k :: o -> o -> Type) :: Type where ... Source #
Kind k
is the kind of the objects of the category k
.
Opposite category
Instances
Category k => CartesianClosed (Presheaves k :: Type -> Type -> Type) Source # | The category of presheaves on a category |
Defined in Data.Category.CartesianClosed type Exponential (Presheaves k) y z :: Kind k Source # apply :: forall (y :: k0) (z :: k0). Obj (Presheaves k) y -> Obj (Presheaves k) z -> Presheaves k (BinaryProduct (Presheaves k) (Exponential (Presheaves k) y z) y) z Source # tuple :: forall (y :: k0) (z :: k0). Obj (Presheaves k) y -> Obj (Presheaves k) z -> Presheaves k z (Exponential (Presheaves k) y (BinaryProduct (Presheaves k) z y)) Source # (^^^) :: forall (z1 :: k0) (z2 :: k0) (y2 :: k0) (y1 :: k0). Presheaves k z1 z2 -> Presheaves k y2 y1 -> Presheaves k (Exponential (Presheaves k) y1 z1) (Exponential (Presheaves k) y2 z2) Source # | |
Category k2 => Category (Op k2 :: k1 -> k1 -> Type) Source # |
|
HasBinaryProducts k2 => HasBinaryCoproducts (Op k2 :: k1 -> k1 -> Type) Source # | Binary products are the dual of binary coproducts. |
Defined in Data.Category.Limit type BinaryCoproduct (Op k2) x y :: Kind k Source # inj1 :: forall (x :: k) (y :: k). Obj (Op k2) x -> Obj (Op k2) y -> Op k2 x (BinaryCoproduct (Op k2) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (Op k2) x -> Obj (Op k2) y -> Op k2 y (BinaryCoproduct (Op k2) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). Op k2 x a -> Op k2 y a -> Op k2 (BinaryCoproduct (Op k2) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). Op k2 a1 b1 -> Op k2 a2 b2 -> Op k2 (BinaryCoproduct (Op k2) a1 a2) (BinaryCoproduct (Op k2) b1 b2) Source # | |
HasBinaryCoproducts k2 => HasBinaryProducts (Op k2 :: k1 -> k1 -> Type) Source # | Binary products are the dual of binary coproducts. |
Defined in Data.Category.Limit type BinaryProduct (Op k2) x y :: Kind k Source # proj1 :: forall (x :: k) (y :: k). Obj (Op k2) x -> Obj (Op k2) y -> Op k2 (BinaryProduct (Op k2) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (Op k2) x -> Obj (Op k2) y -> Op k2 (BinaryProduct (Op k2) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). Op k2 a x -> Op k2 a y -> Op k2 a (BinaryProduct (Op k2) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). Op k2 a1 b1 -> Op k2 a2 b2 -> Op k2 (BinaryProduct (Op k2) a1 a2) (BinaryProduct (Op k2) b1 b2) Source # | |
HasTerminalObject k2 => HasInitialObject (Op k2 :: k1 -> k1 -> Type) Source # | Terminal objects are the dual of initial objects. |
Defined in Data.Category.Limit type InitialObject (Op k2) :: Kind k Source # initialObject :: Obj (Op k2) (InitialObject (Op k2)) Source # initialize :: forall (a :: k). Obj (Op k2) a -> Op k2 (InitialObject (Op k2)) a Source # | |
HasInitialObject k2 => HasTerminalObject (Op k2 :: k1 -> k1 -> Type) Source # | Terminal objects are the dual of initial objects. |
Defined in Data.Category.Limit type TerminalObject (Op k2) :: Kind k Source # terminalObject :: Obj (Op k2) (TerminalObject (Op k2)) Source # terminate :: forall (a :: k). Obj (Op k2) a -> Op k2 a (TerminalObject (Op k2)) Source # | |
HasColimits j k => HasWColimits k (Const (Op j) (->) ()) Source # | Regular colimits as weigthed colimits, weighted by the constant functor to |
Defined in Data.Category.WeightedLimit type WeightedColimit k (Const (Op j) (->) ()) d Source # colimitObj :: forall (j0 :: Type -> Type -> Type) d. (FunctorOf j0 k d, Op j0 ~ Dom (Const (Op j) (->) ())) => Const (Op j) (->) () -> d -> Obj k (WColimit (Const (Op j) (->) ()) d) Source # colimit :: forall (j0 :: Type -> Type -> Type) d. (FunctorOf j0 k d, Op j0 ~ Dom (Const (Op j) (->) ())) => Const (Op j) (->) () -> d -> WeightedCocone (Const (Op j) (->) ()) d (WColimit (Const (Op j) (->) ()) d) Source # colimitFactorizer :: forall (j0 :: Type -> Type -> Type) d e. (FunctorOf j0 k d, Op j0 ~ Dom (Const (Op j) (->) ())) => Const (Op j) (->) () -> d -> Obj k e -> WeightedCocone (Const (Op j) (->) ()) d e -> k (WColimit (Const (Op j) (->) ()) d) e Source # | |
type Exponential (Presheaves k :: Type -> Type -> Type) (y :: Kind (Nat (Op k) (->))) (z :: Kind (Nat (Op k) (->))) Source # | |
Defined in Data.Category.CartesianClosed type Exponential (Presheaves k :: Type -> Type -> Type) (y :: Kind (Nat (Op k) (->))) (z :: Kind (Nat (Op k) (->))) = PShExponential k y z | |
type InitialObject (Op k2 :: k1 -> k1 -> Type) Source # | |
Defined in Data.Category.Limit | |
type TerminalObject (Op k2 :: k1 -> k1 -> Type) Source # | |
Defined in Data.Category.Limit | |
type WeightedColimit k (Const (Op j) (->) ()) d Source # | |
Defined in Data.Category.WeightedLimit | |
type BinaryCoproduct (Op k2 :: k1 -> k1 -> Type) (x :: Kind (Op k2)) (y :: Kind (Op k2)) Source # | |
Defined in Data.Category.Limit type BinaryCoproduct (Op k2 :: k1 -> k1 -> Type) (x :: Kind (Op k2)) (y :: Kind (Op k2)) = BinaryProduct k2 x y | |
type BinaryProduct (Op k2 :: k1 -> k1 -> Type) (x :: Kind (Op k2)) (y :: Kind (Op k2)) Source # | |
Defined in Data.Category.Limit type BinaryProduct (Op k2 :: k1 -> k1 -> Type) (x :: Kind (Op k2)) (y :: Kind (Op k2)) = BinaryCoproduct k2 x y |