[darcs-users] darcs patch: change the kind of the witness types
dagit at codersbase.com
Sun Sep 6 01:59:09 UTC 2009
On Wed, Sep 2, 2009 at 5:09 PM, Ganesh Sittampalam<ganesh at earth.li> wrote:
> Thu Sep 3 01:07:22 BST 2009 Ganesh Sittampalam <ganesh at earth.li>
> * change the kind of the witness types
> A problem with the type witnesses combined with the EqCheck type and
> unsafeCoerceP is that they can be abused to coerce concrete types. By
> changing the kind of the witnesses to something obscure (and arbitrarily
> chosen), this danger should be minimised.
> Unfortunately this change causes a flood of GHC warnings in the witnesses
> build caused by http://hackage.haskell.org/trac/ghc/ticket/959, and a single
> warning about an unused data constructor that I had to add because I can't
> figure out how to get empty data decls with a kind signature in GHC 6.10.4.
I like the contents of this patch, but I don't like that it adds
warnings we can't silence. Fortunately the warnings are only during
the witness build. The warning itself looks like this:
Warning: Inventing strangely-kinded Any TyCon
of kind `((* -> *)
-> (* -> * -> *)
-> (* -> * -> * -> *)
from an instantiation of type variable `x'
This warning can be suppressed by a type signature fixing `x'
but is harmless without -O (and usually harmless anyway).
See http://hackage.haskell.org/trac/ghc/ticket/959 for details
We don't (currently) compile the type-witness build with
optimizations. Eventually we might want to do that. So this change
still going to be harmless for us if we used -O?
Since I'm having a hard time making a decision on this patch, can
someone say something to help sway me either way?
More information about the darcs-users