License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
The cube category.
Documentation
data Cube :: Type -> Type -> Type where Source #
Z :: Cube Z Z | |
S :: Cube x y -> Cube (S x) (S y) | |
Y :: Sign -> Cube x y -> Cube x (S y) | |
X :: Cube x y -> Cube (S x) y |
Instances
Category Cube Source # | |
HasTerminalObject Cube Source # | |
Defined in Data.Category.Cube type TerminalObject Cube :: Kind k Source # terminalObject :: Obj Cube (TerminalObject Cube) Source # terminate :: forall (a :: k). Obj Cube a -> Cube a (TerminalObject Cube) Source # | |
type TerminalObject Cube Source # | |
Defined in Data.Category.Cube |
Instances
Functor Add Source # | Ordinal addition is a bifuntor, it concattenates the maps as it were. |
TensorProduct Add Source # | |
Defined in Data.Category.Cube unitObject :: Add -> Obj (Cod Add) (Unit Add) Source # leftUnitor :: Cod Add ~ k => Add -> Obj k a -> k (Add :% (Unit Add, a)) a Source # leftUnitorInv :: Cod Add ~ k => Add -> Obj k a -> k a (Add :% (Unit Add, a)) Source # rightUnitor :: Cod Add ~ k => Add -> Obj k a -> k (Add :% (a, Unit Add)) a Source # rightUnitorInv :: Cod Add ~ k => Add -> Obj k a -> k a (Add :% (a, Unit Add)) Source # associator :: Cod Add ~ k => Add -> Obj k a -> Obj k b -> Obj k c -> k (Add :% (Add :% (a, b), c)) (Add :% (a, Add :% (b, c))) Source # associatorInv :: Cod Add ~ k => Add -> Obj k a -> Obj k b -> Obj k c -> k (Add :% (a, Add :% (b, c))) (Add :% (Add :% (a, b), c)) Source # | |
type Cod Add Source # | |
Defined in Data.Category.Cube | |
type Dom Add Source # | |
type Unit Add Source # | |
Defined in Data.Category.Cube | |
type Add :% (S m, n) Source # | |
type Add :% (Z, n) Source # | |
Defined in Data.Category.Cube |