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