Idris2/tests/idris2/builtin006/Test.idr
Zoe Stafford 1669fc351b
Refactor %builtin (#1803)
* Stub for future 'identity' optimisation
I plan to add this later, but I'm using for now for
NaturalToInteger and IntegerToNatural

* Refactor `%builtin`
fixes #1799

- automatically optimise all Natural shaped things
- NaturalToInteger and IntegerToNatural now use
  new `Identity` flag (internal use only for now)
  which signals the function is identity at runtime

* Use NaturalToInteger and IntegerToNatural for Nat and Fin
Also define show fin in terms of finToInteger, for speed

* Fix name handling for %builtin

* [ tests ] fixes + #1799

* remove %builtin from libs
Add back after next version

* Use resolved names where convenient
2021-08-03 14:19:17 +01:00

10 lines
153 B
Idris

data MyNat
= Z
| S MyNat MyNat
natToInt : MyNat -> Integer
natToInt Z = 0
natToInt (S k _) = 1 + natToInt k
%builtin NaturalToInteger natToInt