I recentl changed the scoring system used by dependency analysis for
recursive bindings, that it used the *form* of the RHS of a binding,
rather than just its type. In doing so I inadvertently made recursive
dictionary bindings unravel less well, because I'd missed the case
of c = /\a. C (...) (...)
This patch fixes the problem. A good example is the instance for
Monad (ST s) or Show (ST s a) in GHC.ST. It's vital for these
dictionaries to be inlinable.