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 => Uncurry -⊗- F∘ Cat⟨ Id , Id ⟩Cat

  module δ = _=>_ diagonals
  open δ renaming (η to δ) using () public

  field
    diagonal-λ→ : δ _ ≡ λ→ Unit

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