Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | sjoerd@w3future.com |
Category
class Category (~>) whereSource
An instance of Category (~>)
declares the arrow (~>)
as a category.
Category (->) | The category with Haskell types as objects and Haskell functions as arrows. |
Category Cat |
|
Category AdjArrow | The category with categories as objects and adjunctions as arrows. |
Category Mon | The category of all monoids, with monoid morphisms as arrows. |
Category Boolean |
|
Category Omega | |
Category ~> => Category (Op ~>) |
|
Category (Discrete n) => Category (Discrete (S n)) |
|
Category (Discrete Z) |
|
Monoid m => Category (MonoidA m) | A monoid as a category with one object. |
HasTerminalObject ~> => Category (Peano ~>) | |
(Category c1, Category c2) => Category (:**: c1 c2) | The product category of category |
(Category c, Category d) => Category (Nat c d) | Functor category D^C. Objects of D^C are functors from C to D. Arrows of D^C are natural transformations. |
(Dom m ~ ~>, Cod m ~ ~>, Category ~>, Functor m) => Category (Kleisli ~> m) | |
Category (Dialg f g) | |
(Category (Dom t), Category (Dom s)) => Category (:/\: t s) |
type Obj (~>) a = a ~> aSource
Whenever objects are required at value level, they are represented by their identity arrows.