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}