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ℕ