small hiccup in new GND check

Richard Eisenberg eir at cis.upenn.edu
Tue Oct 22 13:27:01 UTC 2013


Good point. I will refine.

The reason it says "specialized" is that type variables other than the last one might be specialized. The class in this example has only one type parameter, so "specialized" is specious. I can fine-tune the error message to print "specialized" only when it actually has been.

Thanks,
Richard

On Oct 22, 2013, at 4:50 AM, Joachim Breitner <mail at joachim-breitner.de> wrote:

> Hi,
> 
> Am Montag, den 21.10.2013, 13:08 -0400 schrieb Richard Eisenberg:
>> For the curious, you can see the code in my github fork
>> at https://raw.github.com/goldfirere/ghc/master/compiler/typecheck/TcDeriv.lhs (search for `role_errs`). An example of the new error message is in https://github.com/goldfirere/testsuite/blob/master/tests/roles/should_fail/Roles10.stderr
> 
> you say
>        Roles10.hs:16:12:
>            Can't make a derived instance of ‛C Age’
>              (even with cunning newtype deriving):
>              it is not type-safe to use GeneralizedNewtypeDeriving on this class;
>              ‛meth’, specialized to type ‛a -> F a’, cannot be converted safely
>            In the newtype declaration for ‛Age’
> 
> but shouldn’t that be either 
> 
> Roles10.hs:16:12:
>    Can't make a derived instance of ‛C Age’
>      (even with cunning newtype deriving):
>      it is not type-safe to use GeneralizedNewtypeDeriving on this class;
>      the type of ‛meth’, ‛a -> F a’, cannot be converted safely
>    In the newtype declaration for ‛Age’
> 
> or
> 
> Roles10.hs:16:12:
>    Can't make a derived instance of ‛C Age’
>      (even with cunning newtype deriving):
>      it is not type-safe to use GeneralizedNewtypeDeriving on this class;
>      ‛meth’, specialized to type ‛Age -> F Age’, cannot be converted safely
>    In the newtype declaration for ‛Age’
> 
> (I’m confused by “specialized to” when the type as printed is not
> specialized.)
> 
> Greetings,
> Joachim
> 
> -- 
> Joachim Breitner
>  e-Mail: mail at joachim-breitner.de
>  Homepage: http://www.joachim-breitner.de
>  ICQ#: 74513189
>  Jabber-ID: nomeata at joachim-breitner.de
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs



More information about the ghc-devs mailing list