
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.h...
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