module Cat.Monoidal.Diagonals {o ℓ}
  {C : Precategory o ℓ} (Cᵐ : Monoidal-category C)
  where

Monoidal categories with diagonals🔗

A monoidal category can be equipped with a system of diagonal morphisms Of course, such a system should be natural in another sensible thing to require is that the diagonal agree with the left (hence also right) unitor.

We call the resulting structure a monoidal category with diagonals.

record Diagonals : Type (o ⊔ ℓ) where
  field
    diagonals : Id => -⊗- F∘ Cat⟨ Id , Id ⟩

  module δ = _=>_ diagonals

  δ :  {A}  Hom A (A ⊗ A)
  δ = δ.η _

  field
    diagonal-λ→ : δ {Unit} ≡ λ→ {Unit}

The prototypical examples of monoidal categories with diagonals are cartesian monoidal categories.