| Copyright | 2008-2012 Edward Kmett |
|---|---|
| License | BSD |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Control.Category.Braided
Description
Documentation
class Associative k p => Braided (k :: Type -> Type -> Type) (p :: Type -> Type -> Type) where Source #
A braided (co)(monoidal or associative) category can commute the arguments of its bi-endofunctor. Obeys the laws:
associate . braid . associate = second braid . associate . first braid disassociate . braid . disassociate = first braid . disassociate . second braid
If the category is Monoidal the following laws should be satisfied
idr . braid = idl idl . braid = idr
If the category is Comonoidal the following laws should be satisfied
braid . coidr = coidl braid . coidl = coidr
class Braided k p => Symmetric (k :: Type -> Type -> Type) (p :: Type -> Type -> Type) Source #
If we have a symmetric (co)Monoidal category, you get the additional law:
swap . swap = id
Instances
| Symmetric (->) Either Source # | |
Defined in Control.Category.Braided | |
| Symmetric (->) (,) Source # | |
Defined in Control.Category.Braided | |