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 Cat Source # |
|
Category AdjArrow Source # | The category with categories as objects and adjunctions as arrows. |
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 # |
|
Category k => Category (Op k) Source # |
|
(Functor f, Dom f ~ (Op c :**: d), Cod f ~ ((->) :: Type -> Type -> Type), Category c, Category d) => Category (Cograph f) Source # | The cograph of the profunctor |
Category (Kleisli m) Source # | The category of Kleisli arrows. |
Category (f (Fix f)) => Category (Fix f) Source # |
|
ECategory k => Category (Underlying k) 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) Source # | The product category of categories |
Category d => Category (Nat c d) 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) Source # | |
(Category c1, Category c2) => Category (c1 :++: c2) Source # | The coproduct category of categories |
Category (MonoidAsCategory f m) 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) Source # | The category of (F,G)-dialgebras. |
(Category (Dom t), Category (Dom s)) => Category (t :/\: s) Source # | The comma category T \downarrow S |
Whenever objects are required at value level, they are represented by their identity arrows.
Opposite category
Instances
Category k => Category (Op k) Source # |
|
HasBinaryProducts k => HasBinaryCoproducts (Op k) Source # | Binary products are the dual of binary coproducts. |
Defined in Data.Category.Limit Associated Types type BinaryCoproduct (Op k) x y :: Type Source # Methods inj1 :: Obj (Op k) x -> Obj (Op k) y -> Op k x (BinaryCoproduct (Op k) x y) Source # inj2 :: Obj (Op k) x -> Obj (Op k) y -> Op k y (BinaryCoproduct (Op k) x y) Source # (|||) :: Op k x a -> Op k y a -> Op k (BinaryCoproduct (Op k) x y) a Source # (+++) :: Op k a1 b1 -> Op k a2 b2 -> Op k (BinaryCoproduct (Op k) a1 a2) (BinaryCoproduct (Op k) b1 b2) Source # | |
HasBinaryCoproducts k => HasBinaryProducts (Op k) Source # | Binary products are the dual of binary coproducts. |
Defined in Data.Category.Limit Associated Types type BinaryProduct (Op k) x y :: Type Source # Methods proj1 :: Obj (Op k) x -> Obj (Op k) y -> Op k (BinaryProduct (Op k) x y) x Source # proj2 :: Obj (Op k) x -> Obj (Op k) y -> Op k (BinaryProduct (Op k) x y) y Source # (&&&) :: Op k a x -> Op k a y -> Op k a (BinaryProduct (Op k) x y) Source # (***) :: Op k a1 b1 -> Op k a2 b2 -> Op k (BinaryProduct (Op k) a1 a2) (BinaryProduct (Op k) b1 b2) Source # | |
HasTerminalObject k => HasInitialObject (Op k) Source # | Terminal objects are the dual of initial objects. |
Defined in Data.Category.Limit Associated Types type InitialObject (Op k) :: Type Source # Methods initialObject :: Obj (Op k) (InitialObject (Op k)) Source # initialize :: Obj (Op k) a -> Op k (InitialObject (Op k)) a Source # | |
HasInitialObject k => HasTerminalObject (Op k) Source # | Terminal objects are the dual of initial objects. |
Defined in Data.Category.Limit Associated Types type TerminalObject (Op k) :: Type Source # Methods terminalObject :: Obj (Op k) (TerminalObject (Op k)) Source # terminate :: Obj (Op k) a -> Op k a (TerminalObject (Op k)) Source # | |
Category k => CartesianClosed (Presheaves k) Source # | The category of presheaves on a category |
Defined in Data.Category.CartesianClosed Associated Types type Exponential (Presheaves k) y z :: Type 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 k) Source # | |
Defined in Data.Category.Limit | |
type TerminalObject (Op k) Source # | |
Defined in Data.Category.Limit | |
type BinaryCoproduct (Op k) x y Source # | |
Defined in Data.Category.Limit | |
type BinaryProduct (Op k) x y Source # | |
Defined in Data.Category.Limit | |
type Exponential (Presheaves k) y z Source # | |
Defined in Data.Category.CartesianClosed |