Abstract BangOpts
Avoid requiring to pass DynFlags to mkDataConRep/buildDataCon. When we load an interface file, these functions don't use the flags. Flags are only used when desugaring.
This is preliminary work to decouple the loader from the type-checker for #14335. We want to load interfaces for plugins independently of the target code/flags. I have been working on making IfM
independent of TcRnIf
and this MR would help.
The second commit untangles GHC.Types.Id.Make
from the driver. It was easy to do after the first commit.