Martin Escardo 1st January 2022 Type-class for notation for canonical maps. Our convention here is that a canonical map is something we decide to call a canonical map. \begin{code} {-# OPTIONS --safe --without-K #-} module Notation.CanonicalMap where open import MLTT.Spartan record Canonical-Map {𝓤} {𝓥} (X : 𝓤 ̇ ) (Y : 𝓥 ̇ ) : 𝓤 ⊔ 𝓥 ̇ where field ι : X → Y open Canonical-Map {{...}} public canonical-map : (X : 𝓤 ̇ ) (Y : 𝓥 ̇ ) → {{_ : Canonical-Map X Y}} → X → Y canonical-map X Y = ι [_] : {X : 𝓤 ̇ } {Y : 𝓥 ̇ } {{ r : Canonical-Map X Y }} → X → Y [_] = ι \end{code}