data-category-0.10: Category theory

LicenseBSD-style (see the file LICENSE)
Maintainersjoerd@w3future.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Category.Comma

Description

Comma categories.

Documentation

data CommaO :: * -> * -> * -> * where Source #

Constructors

CommaO :: (Cod t ~ k, Cod s ~ k) => Obj (Dom t) a -> k (t :% a) (s :% b) -> Obj (Dom s) b -> CommaO t s (a, b) 

data (:/\:) :: * -> * -> * -> * -> * where Source #

Constructors

CommaA :: CommaO t s (a, b) -> Dom t a a' -> Dom s b b' -> CommaO t s (a', b') -> (t :/\: s) (a, b) (a', b') 
Instances
(Category (Dom t), Category (Dom s)) => Category (t :/\: s :: Type -> Type -> Type) Source #

The comma category T \downarrow S

Instance details

Defined in Data.Category.Comma

Methods

src :: (t :/\: s) a b -> Obj (t :/\: s) a Source #

tgt :: (t :/\: s) a b -> Obj (t :/\: s) b Source #

(.) :: (t :/\: s) b c -> (t :/\: s) a b -> (t :/\: s) a c Source #

commaId :: CommaO t s (a, b) -> Obj (t :/\: s) (a, b) Source #

type ObjectsFUnder f a = ConstF f a :/\: f Source #

type ObjectsFOver f a = f :/\: ConstF f a Source #

type Arrows c = Id c :/\: Id c Source #

initialUniversalComma :: forall u x c a a_. (Functor u, c ~ (u `ObjectsFUnder` x), HasInitialObject c, (a_, a) ~ InitialObject c) => u -> InitialUniversal x u a Source #

terminalUniversalComma :: forall u x c a a_. (Functor u, c ~ (u `ObjectsFOver` x), HasTerminalObject c, (a, a_) ~ TerminalObject c) => u -> TerminalUniversal x u a Source #