categories-0.58.0.4: categories from category-extras

Portabilityportable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Category.Braided

Description

 

Synopsis

Documentation

class Associative k p => Braided k p whereSource

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 

Methods

braid :: k (p a b) (p b a)Source

Instances

Braided (->) Either 
Braided (->) (,) 

class Braided k p => Symmetric k p Source

If we have a symmetric (co)Monoidal category, you get the additional law:

 swap . swap = id

Instances

swap :: Symmetric k p => k (p a b) (p b a)Source