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