Portability  nonportable 

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 Void  
Category Pair  
Category Unit  
Category AdjArrow  
Category Boolean 

Category Omega  
Category ~> => Category (Op ~>) 

Category (Discrete n) => Category (Discrete (S n))  
Category (Discrete Z)  
Monoid m => Category (MonoidA m)  
Category ~> => Category (Peano ~>)  
(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. 
(Category c1, Category c2) => Category (:*: c1 c2)  The product category of category 
(Dom m ~ ~>, Cod m ~ ~>, Category ~>, Monad m) => Category (Kleisli ~> m)  
Category (Dialg f g)  
(Category (Dom t), Category (Dom s)) => Category (:/\: t s) 