-import TcEnv ( TcEnv, tcExtendGlobalValEnv,
- tcExtendTyVarEnvForMeths, TyThing (..),
- tcAddImportedIdInfo, tcInstId, tcLookupClass,
- newDFunName, tcExtendTyVarEnv
- )
-import InstEnv ( InstInfo(..), InstEnv, pprInstInfo, classDataCon,
- simpleInstInfoTyCon, simpleInstInfoTy, isLocalInst,
- extendInstEnv )
-import TcMonoType ( tcTyVars, tcHsSigType, tcHsType, kcHsSigType )
-import TcSimplify ( tcSimplifyAndCheck )
-import TcType ( zonkTcSigTyVars )
-import HscTypes ( PersistentCompilerState(..), HomeSymbolTable, DFunId,
- ModDetails(..) )
-
-import Bag ( emptyBag, unitBag, unionBags, unionManyBags,
- foldBag, Bag, listToBag
- )
-import Class ( Class, DefMeth(..), classBigSig )
-import Var ( idName, idType )
-import Maybes ( maybeToBool, expectJust )
-import MkId ( mkDictFunId )
-import Generics ( validGenericInstanceType )
-import Module ( Module, foldModuleEnv )
-import Name ( isLocallyDefined )
-import NameSet ( emptyNameSet, nameSetToList )
-import PrelInfo ( eRROR_ID )
-import PprType ( pprConstraint, pprPred )
-import TyCon ( TyCon, isSynTyCon, tyConDerivings )
-import Type ( mkTyVarTys, splitDFunTy, isTyVarTy,
- splitTyConApp_maybe, splitDictTy,
- splitAlgTyConApp_maybe, classesToPreds, classesOfPreds,
- unUsgTy, tyVarsOfTypes, mkClassPred, mkTyVarTy,
- getClassTys_maybe
- )
-import Subst ( mkTopTyVarSubst, substClasses, substTheta )
-import VarSet ( mkVarSet, varSetElems )
-import TysWiredIn ( genericTyCons, isFFIArgumentTy, isFFIResultTy )
-import PrelNames ( cCallableClassKey, cReturnableClassKey, hasKey )
-import Name ( Name, NameEnv, extendNameEnv_C, emptyNameEnv,
- plusNameEnv_C, nameEnvElts )
-import FiniteMap ( mapFM )
-import SrcLoc ( SrcLoc )
-import VarSet ( varSetElems )
-import UniqFM ( mapUFM )
-import Unique ( Uniquable(..) )
-import BasicTypes ( NewOrData(..), Fixity )
-import ErrUtils ( dumpIfSet_dyn )
-import ListSetOps ( Assoc, emptyAssoc, plusAssoc_C, mapAssoc,
- assocElts, extendAssoc_C,
- equivClassesByUniq, minusList