Define and use PprTyThing.pprTypeForUser
When printing types for the user, the interactive UI often wants to
leave foralls implicit. But then (as Claus points out) we need to be
careful about name capture. For example with this source program
class C a b where
op :: forall a. a -> b
we were erroneously displaying the class in GHCi (with suppressed
foralls) thus:
class C a b where
op :: a -> b
which is utterly wrong.
This patch fixes the problem, removes GHC.dropForAlls (which is dangerous),
and instead supplies PprTyThing.pprTypeForUser, which does the right thing.