[Agda] Agdas constraint solver too eager?!
James Deikun
james at place.org
Sun Sep 9 06:55:02 CEST 2012
On Fri, 2012-09-07 at 15:13 +0200, Andreas Abel wrote:
> A consequence of making Agda aware of unused arguments is that certain
> "phantom-type" tricks do not work anymore.
>
> data D (phantom : Nat) : Set where
> c : D phantom
>
> If Agda may recognize 'phantom' as unused, then
>
> D 0 = D 1
>
> and accordingly, D X = D 0 will not solve X to 0.
Is this entirely true to begin with? What will happen if you have:
f : {phantom : Nat} -> D phantom -> Nat
f (c {phantom}) = phantom
Do you plan to have the data constructor lose injectivity along with the
type constructor? I suppose it probably would not be incoherent to do
so (treating a data constructor as a constructor, properly speaking,
only once the parameters are saturated), but it would seem an unusual
choice...
More information about the Agda
mailing list