hask-0: Categories

Safe HaskellSafe-Inferred
LanguageHaskell2010

Hask.Prof

Documentation

type Prof c d = Nat (Op c) (Nat d (->)) Source

class (Bifunctor f, Dom f ~ Op p, Dom2 f ~ q, Cod2 f ~ (->)) => ProfunctorOf p q f Source

Instances

(Bifunctor k1 k * f, (~) (k1 -> k1 -> *) (Dom k1 (k -> *) f) (Op k1 p), (~) (k -> k -> *) (Dom2 k * k1 f) q, (~) (* -> * -> *) (Cod2 * k k1 f) (->)) => ProfunctorOf k k p q f 

data Procompose c d e p q a b where Source

Constructors

Procompose :: Ob d x => p x b -> q a x -> Procompose c d e p q a b 

Instances

(Category k1 c, Category k2 d, Category k e, ProfunctorOf k k2 d e p, ProfunctorOf k2 k1 c d q, Ob k1 c a) => Functor k * (Procompose k k k c d e p q a) 
(Category k c, Category k1 d, Category k2 e, ProfunctorOf k2 k1 d e p, ProfunctorOf k1 k c d q) => Functor k (k -> *) (Procompose k k k c d e p q) 
(Category k c, Category k1 d, Category k2 e) => Functor (k -> k -> *) ((k -> k -> *) -> k -> k -> *) (Procompose k k k c d e) 
(Category k c, Category k1 d, Category k2 e, ProfunctorOf k2 k1 d e p) => Functor (k -> k -> *) (k -> k -> *) (Procompose k k k c d e p) 
type Dom k * (Procompose k1 k2 k c d e p q a) = e 
type Cod k * (Procompose k1 k2 k c d e p q a) = (->) 
type Dom k (k2 -> *) (Procompose k k1 k2 c d e p q) = Op k c 
type Cod k (k2 -> *) (Procompose k k1 k2 c d e p q) = Nat k2 * e (->) 
type Dom (k1 -> k2 -> *) ((k -> k1 -> *) -> k -> k2 -> *) (Procompose k k1 k2 c d e) = Prof k1 k2 d e 
type Cod (k1 -> k2 -> *) ((k -> k1 -> *) -> k -> k2 -> *) (Procompose k k1 k2 c d e) = Nat (k -> k1 -> *) (k -> k2 -> *) (Prof k k1 c d) (Prof k k2 c e) 
type Dom (k -> k1 -> *) (k -> k2 -> *) (Procompose k k1 k2 c d e p) = Prof k k1 c d 
type Cod (k -> k1 -> *) (k -> k2 -> *) (Procompose k k1 k2 c d e p) = Prof k k2 c e