{-# OPTIONS --safe #-} module HITs.PropositionalTruncation where open import Cubical.HITs.PropositionalTruncation using (squash; ∥_∥; ∣_∣) renaming (rec to ∥rec∥; rec2 to ∥rec2∥; elim to ∥elim∥; rec→Set to ∥rec∥→Set) public open import Level open import Function ∥map∥ : (A → B) → ∥ A ∥ → ∥ B ∥ ∥map∥ f = ∥rec∥ squash (∣_∣ ∘ f) ∥liftA2∥ : (A → B → C) → ∥ A ∥ → ∥ B ∥ → ∥ C ∥ ∥liftA2∥ f = ∥rec2∥ squash λ x y → ∣ f x y ∣ ∥bind∥ : (A → ∥ B ∥) → ∥ A ∥ → ∥ B ∥ ∥bind∥ = ∥rec∥ squash