-import BasicTypes ( SYN_IE(Module) )
-import CmdLineOpts ( opt_SccProfilingOn, opt_AutoSccsOnAllToplevs,
- opt_AutoSccsOnExportedToplevs
- )
-import CostCentre ( mkAutoCC, IsCafCC(..), mkAllDictsCC, preludeDictsCostCentre )
-import Id ( idType, SYN_IE(DictVar), GenId, SYN_IE(Id) )
---ToDo: rm import ListSetOps ( minusList, intersectLists )
-import Name ( isExported )
-import PprType ( GenType )
-import Outputable ( PprStyle(..) )
-import Type ( mkTyVarTy, isDictTy, instantiateTy
- )
-import TyVar ( tyVarSetToList, GenTyVar{-instance Eq-} )
-import TysPrim ( voidTy )
-import Util ( isIn, panic, assertPanic )
+import CmdLineOpts ( opt_AutoSccsOnAllToplevs, opt_AutoSccsOnExportedToplevs )
+import CostCentre ( mkAutoCC, IsCafCC(..) )
+import Id ( idType, idName, isUserExportedId, isSpecPragmaId, Id )
+import NameSet
+import VarSet
+import Type ( mkTyVarTy )
+import Subst ( mkTyVarSubst, substTy )
+import TysWiredIn ( voidTy )
+import Outputable
+import Maybe ( isJust )