[Agda] function application in index positions
Peter Divianszky
divipp at gmail.com
Tue Feb 5 12:09:52 CET 2013
On 02/04/2013 06:17 PM, Andreas Abel wrote:
> On 01.02.2013 21:32, Peter Divianszky wrote:
>
>> data Even : ℕ → Set where
>> double : ∀ n → Even (n + n)
>
> I think non-pattern indices like this one should be forbidden in the
> first place. Instead you should have to write
>
> data Even (m : N) : Set where
> double : forall n -> (n + n == m) -> Even m
From a practical viewpoint, isn't the first data definition is more
compact having exactly the same semantics?
>> Is this documented / should I open a ticket?
>
> I think the current liberty leads people to believe the type checker
> could handle arbitrary indices, which is not true and leads to error
> messages which are harder to understand than an outright
>
> "double's type is illegal because the unification problem
>
> n + n == expression
>
> is not solvable in general"
A better error message would help a lot!
Cheers,
Peter
More information about the Agda
mailing list