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

open import Class.Prelude

record Toℕ (A : Type ) : Type  where
  field toℕ : A  
open Toℕ ⦃...⦄ public

open import Reflection.AST.Meta as Meta using (Meta)

instance
  Toℕ-ℕ    = Toℕ        λ where .toℕ  id
  Toℕ-Char = Toℕ Char    λ where .toℕ  Ch.toℕ
  Toℕ-Word = Toℕ Word64  λ where .toℕ  Word.toℕ
  Toℕ-Meta = Toℕ Meta    λ where .toℕ  Meta.toℕ

  Toℕ-Fin :  {n}  Toℕ (Fin n)
  Toℕ-Fin .toℕ = Fi.toℕ

  import Data.List.Membership.Propositional as LMem
  import Data.List.Relation.Unary.Any as LAny

  Toℕ-List∈ :  {x}{xs : List A}  Toℕ (x LMem.∈ xs)
  Toℕ-List∈ .toℕ = toℕ  LAny.index

  import Data.Vec.Membership.Propositional as VMem
  import Data.Vec.Relation.Unary.Any as VAny

  Toℕ-Vec∈ :  {x}{xs : Vec A n}  Toℕ (x VMem.∈ xs)
  Toℕ-Vec∈ .toℕ = toℕ  VAny.index