{-# 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