Address PR feedback — remove additional agda specifics

This commit is contained in:
Zachary Brown 2020-02-06 17:04:02 -08:00
parent 25fbc53ecb
commit 310ab57692

View file

@ -239,11 +239,10 @@ Including the line
```
tells Agda that `` corresponds to the natural numbers, and hence one
is permitted to type `0` as shorthand for `zero`, `1` as shorthand for
`suc zero`, `2` as shorthand for `suc (suc zero)`, and so on. The
declaration is not permitted unless the type given has exactly two
constructors, one with no arguments (corresponding to zero) and
one with a single argument of the same type given in the pragma
(corresponding to successor).
`suc zero`, `2` as shorthand for `suc (suc zero)`, and so on. The pragma
must be given a previously declared type (in this case ``) with
precisely two constructors, one with no arguments (in this case `zero`),
and one with a single argument of the given type (in this case `succ`).
As well as enabling the above shorthand, the pragma also enables a
more efficient internal representation of naturals using the Haskell
@ -252,20 +251,6 @@ with `zero` and `suc` requires space proportional to _n_, whereas
representing it as an arbitrary-precision integer in Haskell only
requires space proportional to the logarithm of _n_.
Note that the data declaration must come _before_ the `BUILTIN` pragma,
as Agda will attempt to bind the given built-in to whatever name is given
in the pragma statement. As such, that name must be in scope relative to
the pragma. If you encounter a "Not in scope" error after adding the
pragma, this is likely the cause.
Complete definition with pragma:
```
data : Set where
zero :
suc :
{-# BUILTIN NATURAL #-}
```
## Imports