License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Comma categories.
Synopsis
- data CommaO :: Type -> Type -> Type -> Type where
- data (:/\:) :: Type -> Type -> Type -> Type -> Type where
- commaId :: CommaO t s (a, b) -> Obj (t :/\: s) (a, b)
- type ObjectsFUnder f a = ConstF f a :/\: f
- type ObjectsFOver f a = f :/\: ConstF f a
- type ObjectsUnder c a = Id c `ObjectsFUnder` a
- type ObjectsOver c a = Id c `ObjectsFOver` a
- initialUniversalComma :: forall u x c a a_. (Functor u, c ~ (u `ObjectsFUnder` x), HasInitialObject c, (a_, a) ~ InitialObject c) => u -> InitialUniversal x u a
- terminalUniversalComma :: forall u x c a a_. (Functor u, c ~ (u `ObjectsFOver` x), HasTerminalObject c, (a, a_) ~ TerminalObject c) => u -> TerminalUniversal x u a
- type Arrows k = Id k :/\: Id k
- data IdArrow (k :: Type -> Type -> Type) = IdArrow
- data Src (k :: Type -> Type -> Type) = Src
- data Tgt (k :: Type -> Type -> Type) = Tgt
- tgtIdAdj :: Category k => Adjunction k (Arrows k) (Tgt k) (IdArrow k)
- idSrcAdj :: Category k => Adjunction (Arrows k) k (IdArrow k) (Src k)
Documentation
data (:/\:) :: Type -> Type -> Type -> Type -> Type where Source #
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') |
type ObjectsFUnder f a = ConstF f a :/\: f Source #
type ObjectsFOver f a = f :/\: ConstF f a Source #
type ObjectsUnder c a = Id c `ObjectsFUnder` a Source #
type ObjectsOver c a = Id c `ObjectsFOver` a 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 #