[Agda] using literals and the standard library
Martin Stone Davis
martin.stone.davis at gmail.com
Wed Dec 5 06:31:14 CET 2018
To get both Nat and Fin literals using the standard library (latest
development versions, including Jesper's latest re: instance
resolution), I write the following:
```agda
open import Agda.Builtin.FromNat
open import Data.Nat
open import Data.Nat.Literals
open import Data.Fin
open import Data.Fin.Literals
open import Data.Unit -- or Agda.Builtin.Unit
instance
_ = Data.Nat.Literals.number
_ : ∀ {n} → Number (Fin n)
_ = Data.Fin.Literals.number _
test-nat : ℕ
test-nat = 3
test-fin : Fin 7
test-fin = 3
```
It's a bit annoying to need to import from Agda.Builtin.FromNat and from
Data.Unit, so I wonder if this is the recommended approach? Also, should
Data.Fin.Literals.number be updated to take a hidden argument (given
that the new instance resolution does not count explicit arguments as
instance arguments anymore)?
More information about the Agda
mailing list