Source code on Github
{-# OPTIONS --safe #-}
module Prelude.FromN where

open import Prelude.Init; open SetAsType
open import Prelude.Newtype

record Fromℕ (A : Type ) : Type  where
  field fromℕ :   A
open Fromℕ ⦃...⦄ public

instance
  Fromℕ-ℕ : Fromℕ 
  Fromℕ-ℕ .fromℕ = id

  Fromℕ-Int : Fromℕ 
  Fromℕ-Int .fromℕ = +_

  Fromℕ-Char : Fromℕ Char
  Fromℕ-Char .fromℕ = Ch.fromℕ

  Fromℕ-Fin : Fromℕ ( Fin)
  Fromℕ-Fin .fromℕ = -,_  F.fromℕ

  Fromℕ-Word : Fromℕ Word64
  Fromℕ-Word .fromℕ = Word.fromℕ

  Fromℕ-ℕᵇ : Fromℕ ℕᵇ
  Fromℕ-ℕᵇ .fromℕ = Nat.Bin.fromℕ

  Fromℕ-newtype :  {A : Type }   Fromℕ A   Fromℕ (newtype A)
  Fromℕ-newtype .fromℕ = mk  fromℕ