category-extras-0.44.1: Various modules and constructs inspired by category theory.

Portability

non-portable (class-associated types)

Stability

experimental

Maintainer

Edward Kmett <ekmett@gmail.com>

Control.Bifunctor.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 type annotations.

This type class is also (ab)used for the inverse operations needed for a strict (co)monoidal category.
A strict (co)monoidal category is one that is both Monoidal and Comonoidal and satisfies the following laws: