Portability | portable |
---|---|

Stability | experimental |

Maintainer | Edward Kmett <ekmett@gmail.com> |

# Documentation

A braided (co)(monoidal or associative) category can commute the arguments of its bi-endofunctor. Obeys the laws:

idr . braid = idl idl . braid = idr braid . coidr = coidl braid . coidl = coidr associate . braid . associate = second braid . associate . first braid coassociate . braid . coassociate = first braid . coassociate . second braid

Braided Hask Either | |

Braided Hask (,) | |

Braided Hask (Const2 t) | |

Braided Hask p => Braided Hask (Flip p) | |

(Functor f, Braided Hask p) => Braided Hask (Of f p) | |

(Functor f, Braided Hask p) => Braided Hask (Biff p f f) | |

(Bifunctor p Hask Hask Hask, Braided Hask f, Braided Hask g) => Braided Hask (Comp p f g) |

class Braided k p => Symmetric k p Source

If we have a symmetric (co)`Monoidal`

category, you get the additional law:

swap . swap = id

Symmetric Hask Either | |

Symmetric Hask (,) | |

Symmetric Hask (Const2 t) | |

Symmetric Hask p => Symmetric Hask (Flip p) | |

(Functor f, Symmetric Hask p) => Symmetric Hask (Of f p) | |

(Functor f, Symmetric Hask p) => Symmetric Hask (Biff p f f) | |

(Bifunctor p Hask Hask Hask, Symmetric Hask f, Symmetric Hask g) => Symmetric Hask (Comp p f g) |