module Data.Irr where

Strict propositional truncations🔗

In Agda, it’s possible to turn any type into one that definitionally has at most one inhabitant. We do this using a record containing an irrelevant field.

record Irr {} (A : Type ) : Type  where
  constructor forget
  field
    @irr lower : A

The most important property of this type is that, given any in the constant path refl checks at type

instance
  H-Level-Irr :  {n}  H-Level (Irr A) (suc n)
  H-Level-Irr {n} = prop-instance λ _ _  refl