[darcs-users] darcs patch: change the kind of the witness types

Ganesh Sittampalam ganesh at earth.li
Sun Sep 6 19:34:04 UTC 2009


On Sat, 5 Sep 2009, Jason Dagit wrote:

> 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:

Having worked with darcs a bit more since submitting the patch, I'm 
inclined to feel that actually these warnings are way too annoying, so I 
withdraw the patch for now and will investigate if there are any better 
alternatives.

>             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?

Eventually we'll want the witnesses build to be the real darcs and will 
therefore need -O, and I do agree the message is a bit worrying.

Ganesh


More information about the darcs-users mailing list