| License | BSD-style (see the file LICENSE) |
|---|---|
| Maintainer | sjoerd@w3future.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Data.Category
Contents
Description
Category
class Category k where Source #
An instance of Category k declares the arrow k as a category.
Instances
| Category k2 => Category (Op k2 :: k1 -> k1 -> Type) Source # |
|
| Category Unit Source # |
|
| Category Void Source # |
|
| Category Simplex Source # | The (augmented) simplex category is the category of finite ordinals and order preserving maps. |
| Category Cube Source # | |
| Category Boolean Source # |
|
| (Functor f, Dom f ~ (Op c :**: d), Cod f ~ ((->) :: Type -> Type -> Type), Category c, Category d) => Category (Cograph f :: Type -> Type -> Type) Source # | The cograph of the profunctor |
| Category (Kleisli m :: Type -> Type -> Type) Source # | The category of Kleisli arrows. |
| Category (f (Fix f)) => Category (Fix f :: Type -> Type -> Type) Source # |
|
| ECategory k => Category (Underlying k :: Type -> Type -> Type) Source # | The underlying category of an enriched category |
Defined in Data.Category.Enriched Methods src :: Underlying k a b -> Obj (Underlying k) a Source # tgt :: Underlying k a b -> Obj (Underlying k) b Source # (.) :: Underlying k b c -> Underlying k a b -> Underlying k a c Source # | |
| Category ((->) :: Type -> Type -> Type) Source # | The category with Haskell types as objects and Haskell functions as arrows. |
| (Category c1, Category c2) => Category (c1 :**: c2 :: Type -> Type -> Type) Source # | The product category of categories |
| 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 # | |
| (Category c1, Category c2) => Category (c1 :++: c2 :: Type -> Type -> Type) Source # | The coproduct category of categories |
| Category (MonoidAsCategory f m :: Type -> Type -> Type) Source # | A monoid as a category with one object. |
Defined in Data.Category.Monoidal Methods src :: MonoidAsCategory f m a b -> Obj (MonoidAsCategory f m) a Source # tgt :: MonoidAsCategory f m a b -> Obj (MonoidAsCategory f m) b Source # (.) :: MonoidAsCategory f m b c -> MonoidAsCategory f m a b -> MonoidAsCategory f m a c Source # | |
| Category (Dialg f g :: Type -> Type -> Type) Source # | The category of (F,G)-dialgebras. |
| (Category (Dom t), Category (Dom s)) => Category (t :/\: s :: Type -> Type -> Type) Source # | The comma category T \downarrow S |
| Category Cat Source # |
|
| Category AdjArrow Source # | The category with categories as objects and adjunctions as arrows. |
Whenever objects are required at value level, they are represented by their identity arrows.
type family Kind (k :: o -> o -> *) :: * where ... Source #
Kind k is the kind of the objects of the category k.
Equations
| Kind (k :: o -> o -> *) = o |
Opposite category
Instances
| 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 Associated Types type BinaryCoproduct (Op k2) x y :: Kind k Source # Methods inj1 :: Obj (Op k2) x -> Obj (Op k2) y -> Op k2 x (BinaryCoproduct (Op k2) x y) Source # inj2 :: Obj (Op k2) x -> Obj (Op k2) y -> Op k2 y (BinaryCoproduct (Op k2) x y) Source # (|||) :: Op k2 x a -> Op k2 y a -> Op k2 (BinaryCoproduct (Op k2) x y) a Source # (+++) :: 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 Associated Types type BinaryProduct (Op k2) x y :: Kind k Source # Methods proj1 :: Obj (Op k2) x -> Obj (Op k2) y -> Op k2 (BinaryProduct (Op k2) x y) x Source # proj2 :: Obj (Op k2) x -> Obj (Op k2) y -> Op k2 (BinaryProduct (Op k2) x y) y Source # (&&&) :: Op k2 a x -> Op k2 a y -> Op k2 a (BinaryProduct (Op k2) x y) Source # (***) :: 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 Associated Types type InitialObject (Op k2) :: Kind k Source # Methods initialObject :: Obj (Op k2) (InitialObject (Op k2)) Source # initialize :: 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 Associated Types type TerminalObject (Op k2) :: Kind k Source # Methods terminalObject :: Obj (Op k2) (TerminalObject (Op k2)) Source # terminate :: Obj (Op k2) a -> Op k2 a (TerminalObject (Op k2)) Source # | |
| Category k => CartesianClosed (Presheaves k :: Type -> Type -> Type) Source # | The category of presheaves on a category |
Defined in Data.Category.CartesianClosed Associated Types type Exponential (Presheaves k) y z :: Kind k Source # Methods apply :: Obj (Presheaves k) y -> Obj (Presheaves k) z -> Presheaves k (BinaryProduct (Presheaves k) (Exponential (Presheaves k) y z) y) z Source # tuple :: Obj (Presheaves k) y -> Obj (Presheaves k) z -> Presheaves k z (Exponential (Presheaves k) y (BinaryProduct (Presheaves k) z y)) Source # (^^^) :: Presheaves k z1 z2 -> Presheaves k y2 y1 -> Presheaves k (Exponential (Presheaves k) y1 z1) (Exponential (Presheaves k) y2 z2) Source # | |
| 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 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 | |
| type Exponential (Presheaves k :: Type -> Type -> Type) (y :: Kind (Nat (Op k) ((->) :: Type -> Type -> Type))) (z :: Kind (Nat (Op k) ((->) :: Type -> Type -> Type))) Source # | |
Defined in Data.Category.CartesianClosed type Exponential (Presheaves k :: Type -> Type -> Type) (y :: Kind (Nat (Op k) ((->) :: Type -> Type -> Type))) (z :: Kind (Nat (Op k) ((->) :: Type -> Type -> Type))) = PShExponential k y z | |