A monoidal category is a category where morphisms can be composed in parallel.

# 1 Monoidal category

A monoidal category is a category $$\cC$$ equipped with

• monoidal multiplication: a bifunctor $$\otimes: \cC \times \cC \to \cC$$
• monoidal unit: a $$\cC$$-object $$I$$
• associator: a natural isomorphism $$\alpha_{A, B, C}: (A \otimes B) \otimes C \to A \otimes (B \otimes C)$$
• left unitor: a natural isomorphism $$\lambda_A: I \otimes A \to A$$
• right unitor: a natural isomorphism $$\rho_A: A \otimes I \to A$$

such that the triangle and pentagon diagrams commute.

A monoidal category is strict if $$\alpha$$, $$\lambda$$, and $$\rho$$ are all identity morphisms.

## 1.1 Braided monoidal category

A braided monoidal category is a monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho)$$ equipped with

• braiding: a natural isomorphism $$\beta_{A, B}: A \otimes B \to B \otimes A$$

such that the hexagon diagram commutes.

## 1.2 Symmetric monoidal category

A symmetric monoidal category is a braided monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho, \beta)$$ whose braiding $$\beta$$ satisfies $$\beta_{B, A} \circ \beta_{A, B} = \id_{A \otimes B}$$.

# 2 Monoidal functor

For monoidal categories $$\cC$$ and $$\cD$$, a lax monoidal functor is a functor $$F: \cC \to \cD$$ equipped with

• a natural transformation $$\mu_{A, B}: FA \otimes_\cD FB \to F(A \otimes_\cC B)$$
• a $$\cD$$-morphism $$\eta: I_\cD \to FI_\cC$$

subject to

• associativity: $$\mu (\id \otimes \mu) \alpha_\cD = (F\alpha_\cC) \mu (\mu \otimes \id)$$
• identity: $$(F \lambda_\cC) \mu (\eta \otimes \id) = \lambda_\cD$$ and $$(F \rho_\cC) \mu (\id \otimes \eta) = \rho_\cD$$

Type:

• lax: morphisms
• strong: isomorphisms
• strict: identity morphisms
-- applicative function application
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(<*)  :: Applicative f => f a -> f b -> f a
(*>) :: Applicative f => f a -> f b -> f b

## 2.1 Braided monoidal functor

A braided monoidal functor is a monoidal functor that is compatible with

• braiding: $$\mu \beta_\cD = (F\beta_\cC) \mu$$

## 2.2 Symmetric monoidal functor

A symmetric monoidal functor is a braided monoidal functor between symmetric monoidal categories.

# 3 Monoidal natural transformation

A monoidal natural transformation $$\alpha: F \to G$$ between two monoidal categories is a natural transformation that is compatible with

• monoidal multiplication: $$\mu_G (\alpha \otimes \alpha) = \alpha \mu_F$$
• monoidal unit: $$\alpha \eta_F = \eta_G$$

# 4 Monoid object

A monoid object in a monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho)$$ is a $$\cC$$-object $$M$$ equipped with two $$\cC$$-morphisms:

• multiplication $$\mu: M \otimes M \to M$$
• unit $$\eta: I \to M$$

subject to

• associativity: $$\mu (\id \otimes \mu) \alpha = \mu (\mu \otimes \id)$$
• identity: $$\mu (\eta \otimes \id) = \lambda$$ and $$\mu (\id \otimes \eta) = \rho$$
-- mappend
(<>) :: Monoid m => m -> m -> m

A monoid homomorphism between two monoid objects $$M$$ and $$N$$ in $$\cC$$ is a $$\cC$$-morphism $$f: M \to N$$ that preserves

• monoidal multiplication: $$\mu_N \circ (f \otimes f) = f \circ \mu_M$$
• monoidal unit: $$f \circ \eta_M = \eta_N$$
• a monoid object = a lax monoidal functor $$M: (\cOne, \otimes, *) \to (\cC, \otimes, I)$$
• a monoid homomorphism = a monoidal natural transformation $$f: M \nat N$$

Examples:

• monoid: $$\cSet$$
• ring: $$\cAb$$
• monad: $$[\cC, \cC]$$

A comonoid object in $$\cC$$ is a monoid object in $$\cC\op$$.

• comultiplication $$\Delta: M \to M \otimes M$$
• counit $$\epsilon: M \to I$$

# 5 M-module

For a monoid object $$(M, \mu, \eta)$$ in a monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho)$$, a (left) module over a monoid object (M-module) is an F-algebra $$(A, \act_A: M \otimes A \to A)$$ for the endofunctor

\begin{aligned} (M \otimes -): \cC &\to \cC \\ A &\mapsto M \otimes A \\ f &\mapsto \id_M \otimes f \end{aligned}

that is compatible with

• monoid multiplication: $$\act (\id \otimes \act) \alpha = \act (\mu \otimes \id)$$
• monoid unit: $$\act (\eta \otimes \id) = \lambda$$

An M-module homomorphism is an F-algebra homomorphism.