data-category-0.2.0: Restricted categories

Portabilitynon-portable
Stabilityexperimental
Maintainersjoerd@w3future.com

Data.Category

Contents

Description

 

Synopsis

Category

class Category (~>) whereSource

An instance of Category (~>) declares the arrow (~>) as a category.

Associated Types

data Obj (~>) :: * -> *Source

Methods

src :: (a ~> b) -> Obj ~> aSource

tgt :: (a ~> b) -> Obj ~> bSource

id :: Obj ~> a -> a ~> aSource

(.) :: (b ~> c) -> (a ~> b) -> a ~> cSource

Instances

Category (->)

The category with Haskell types as objects and Haskell functions as arrows.

Category Cat

Cat is the category with categories as objects and funtors as arrows.

Category Void 
Category Pair 
Category Unit 
Category AdjArrow 
Category Boolean

Boolean is the category with true and false as objects, and an arrow from false to true.

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

Op (~>) is opposite category of the category (~>).

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 c1 and c2.

(Dom m ~ ~>, Cod m ~ ~>, Category ~>, Monad m) => Category (Kleisli ~> m) 
Category (Dialg f g) 
(Category (Dom t), Category (Dom s)) => Category (:/\: t s) 

Opposite category

data Op whereSource

Constructors

Op :: (a ~> b) -> Op ~> b a 

Instances

Category ~> => Category (Op ~>)

Op (~>) is opposite category of the category (~>).