+import HsSyn ( HsStmtContext(..), Stmt(..), HsExpr(..), HsBindGroup(..),
+ LStmt, LHsExpr, LHsType,
+ collectStmtsBinders, mkSimpleMatch, placeHolderType,
+ nlLetStmt, nlExprStmt, nlBindStmt, nlResultStmt, nlVarPat )
+import RdrName ( GlobalRdrEnv, mkGlobalRdrEnv, GlobalRdrElt(..),
+ Provenance(..), ImportSpec(..),
+ lookupLocalRdrEnv, extendLocalRdrEnv )
+import RnSource ( addTcgDUs )
+import TcHsSyn ( mkHsLet, zonkTopLExpr, zonkTopBndrs )
+import TcHsType ( kcHsType )
+import TcExpr ( tcCheckRho )
+import TcMType ( zonkTcType )
+import TcMatches ( tcStmtsAndThen, TcStmtCtxt(..) )
+import TcSimplify ( tcSimplifyInteractive, tcSimplifyInfer )
+import TcType ( Type, mkForAllTys, mkFunTys, mkTyConApp, tyVarsOfType )
+import TcEnv ( tcLookupTyCon, tcLookupId, tcLookupGlobal )
+import RnTypes ( rnLHsType )
+import Inst ( tcStdSyntaxName )
+import RnExpr ( rnStmts, rnLExpr )
+import RnNames ( exportsToAvails )
+import LoadIface ( loadSrcInterface )
+import IfaceSyn ( IfaceDecl(..), IfaceClassOp(..), IfaceConDecl(..),
+ IfaceExtName(..), IfaceConDecls(..),
+ tyThingToIfaceDecl )
+import RnEnv ( lookupOccRn, dataTcOccs, lookupFixityRn )
+import Id ( Id, isImplicitId, globalIdDetails )
+import FieldLabel ( fieldLabelTyCon )
+import MkId ( unsafeCoerceId )
+import DataCon ( dataConTyCon )
+import TysWiredIn ( mkListTy, unitTy )
+import IdInfo ( GlobalIdDetails(..) )
+import SrcLoc ( interactiveSrcLoc, unLoc )
+import Kind ( Kind )
+import Var ( globaliseId )
+import Name ( nameOccName, nameModuleName )
+import NameEnv ( delListFromNameEnv )
+import PrelNames ( iNTERACTIVE, ioTyConName, printName, monadNames, itName, returnIOName )
+import Module ( ModuleName, lookupModuleEnvByName )
+import HscTypes ( InteractiveContext(..),
+ HomeModInfo(..), typeEnvElts,
+ TyThing(..), availName, availNames, icPrintUnqual,
+ ModIface(..), ModDetails(..) )
+import BasicTypes ( RecFlag(..), Fixity )
+import Bag ( unitBag )
+import ListSetOps ( removeDups )
+import Panic ( ghcError, GhcException(..) )