Copyright | 2008,2012 Edward Kmett |
---|---|
License | BSD |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable (class-associated types) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Control.Category.Monoidal
Description
A Monoidal
category is a category with an associated biendofunctor that has an identity,
which satisfies Mac Lane''s pentagonal and triangular coherence conditions
Technically we usually say that category is Monoidal
, but since
most interesting categories in our world have multiple candidate bifunctors that you can
use to enrich their structure, we choose here to think of the bifunctor as being
monoidal. This lets us reuse the same Bifunctor
over different categories without
painful newtype wrapping.
Documentation
class Associative k p => Monoidal k p where Source
Denotes that we have some reasonable notion of Identity
for a particular Bifunctor
in this Category
. This
notion is currently used by both Monoidal
and Comonoidal
A monoidal category. idl
and idr
are traditionally denoted lambda and rho
the triangle identities hold:
first idr = second idl . associate second idl = first idr . associate first idr = disassociate . second idl second idl = disassociate . first idr idr . coidr = id idl . coidl = id coidl . idl = id coidr . idr = id