-import IfaceType ( IfaceExtName(..), IfaceTyCon(..), ifaceTyConName )
-import TysWiredIn ( tupleTyCon, tupleCon )
-import HscTypes ( NameCache(..), HscEnv(..), GenAvailInfo(..),
- IfaceExport, OrigNameCache )
-import Type ( mkOpenTvSubst, substTy )
-import TyCon ( TyCon, tyConName )
-import Unify ( TypeRefinement )
-import DataCon ( dataConWorkId, dataConName )
-import Var ( TyVar, Id, varName, setIdType, idType )
-import Name ( Name, nameUnique, nameModule,
- nameOccName, nameSrcLoc,
- getOccName, nameParent_maybe,
- isWiredInName, mkIPName,
- mkExternalName, mkInternalName )
-import NameSet ( NameSet, emptyNameSet, addListToNameSet )
-import OccName ( OccName, isTupleOcc_maybe, tcName, dataName, mapOccEnv, occNameFS,
- lookupOccEnv, unitOccEnv, extendOccEnv, extendOccEnvList )
-import PrelNames ( gHC_PRIM, pREL_TUP )
-import Module ( Module, emptyModuleEnv,
- lookupModuleEnv, extendModuleEnv_C )
-import UniqFM ( lookupUFM, addListToUFM )
-import FastString ( FastString )
-import UniqSupply ( UniqSupply, splitUniqSupply, uniqFromSupply, uniqsFromSupply )
-import FiniteMap ( emptyFM, lookupFM, addToFM )
-import BasicTypes ( IPName(..), mapIPName )
-import SrcLoc ( SrcLoc, noSrcLoc )
-import Maybes ( orElse )