{-# OPTIONS --cubical-compatible #-} module Class.View where open import Class.Prelude record _▷_ (A : Type ℓ) (B : Type ℓ′) : Type (ℓ ⊔ ℓ′) where field view : A → B unview : B → A unview∘view : ∀ x → unview (view x) ≡ x view∘unview : ∀ y → view (unview y) ≡ y open _▷_ ⦃...⦄ public view_as_ : A → (B : Type ℓ′) ⦃ _ : A ▷ B ⦄ → B view x as B = view {B = B} x