Source code on Github
{-# OPTIONS --cubical-compatible #-}
module Class.Coercions where

open import Class.Prelude

infix -1 _↝_
record _↝_ (A : Type ) (B : Type ℓ′) : Typeω where
  field to : A  B
  syntax to {B = B} = to[ B ]
open _↝_ ⦃...⦄ public

tos :  A  B   List A  List B
tos .to = map to

infix -1 _⁇_↝_
record _⁇_↝_ (A : Type ) (P : Pred A ℓ′) (B : Type ℓ′) : Typeω where
  field toBecause : (x : A) .{_ : P x}  B
  syntax toBecause x {p} = ⌞ x ⊣ p ⌟
open _⁇_↝_ ⦃...⦄ public