For future reference (my own future reference, most likely), here are why these 
packages break:

On Sep 30, 2013, at 2:26 AM, Bryan O'Sullivan wrote:

> 12 language-c-0.4.2        the last parameter of ‛Error’ is at role Nominal
Legit error. The Error class has Typeable as a superclass, and using GND in 
that scenario is very dodgy, at best.

> 11 logfloat-0.12.1         the last parameter of ‛IArray’ is at role Nominal
This should be fixed with "lazier" checking during GND, as detailed here: 
http://www.haskell.org/pipermail/glasgow-haskell-users/2013-October/022836.html

>  5 diagrams-lib-0.7.1.1    the last parameter of ‛Transformable’ is at role 
> Nominal
Legit error. The library assumed that a newtype and its base type had the same 
behavior when passed to a certain type family. It is conceivable that a 
much-souped-up version of roles could identify that this assumption has been 
made and then check the assumption, but there are no plans for this.

>  4 smallcheck-1.0.4        the last parameter of ‛MonadLogic’ is at role 
> Nominal
Error caused by lack of role abstraction.

>  2 monadiccp-0.7.6         the last parameter of ‛ReaderM’ is at role Nominal
Error caused by lack of role abstraction.

>  2 histogram-fill-0.8.1.0  the last parameter of ‛BinEq’ is at role Nominal
Legit error. BinEq has a superclass Bin that has an associated type.

>  1 acme-schoenfinkel-0.1.1 the last parameter of ‛ArrowApply’ is at role 
> Nominal
Error caused by lack of role abstraction.

The "role abstraction" errors could be solved by a rather simple extension to 
the roles mechanism, I think… I will detail in a fresh email so that the idea 
doesn't get lost in this thread.

Richard
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to