Need -fno-print-explicit-runtime-reps to work on IfaceType, else RuntimeRep leaks
After #11549 (closed), we are suppose not to show
RuntimeRep to users, when
-fno-print-explicit-runtime-reps is on. But we do:
:info ($) Prelude> :i ($) ($) :: forall (r :: GHC.Types.RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b -- Defined in ‘GHC.Base’
This happens because the runtime-rep-suppression happens on
Type, but for
:info we use
pprInfo which uses
tyThingToIfaceDecl and then prints it. And
tyThingToIfaceDecl doesn't know about the
-fprint-explicit-runtime-reps flag; and I'd like to keep it that way.
We want to change
pprType to convert to
IfaceType and then print anyway.
I suppose that this means that the pretty-printer for
IfaceType needs to know about this runtime-rep suppression. That's a bit tiresome, but not impossible, especially since there is no shadowing to worry about.