+
+import RnMonad
+import RnUtils ( SYN_IE(RnEnv), extendGlobalRnEnv )
+import RnBinds ( rnMethodBinds, rnTopBinds )
+
+import Bag ( Bag, isEmptyBag, unionBags, listToBag )
+import Class ( classKey, needsDataDeclCtxtClassKeys, GenClass )
+import ErrUtils ( pprBagOfErrors, addErrLoc, SYN_IE(Error) )
+import Id ( dataConArgTys, isNullaryDataCon, mkDictFunId )
+import Maybes ( maybeToBool )
+import Name ( isLocallyDefined, getSrcLoc,
+ mkTopLevName, origName, mkImplicitName, ExportFlag(..),
+ RdrName(..), Name{--O only-}
+ )
+import Outputable ( Outputable(..){-instances e.g., (,)-} )
+import PprType ( GenType, GenTyVar, GenClass, TyCon )
+import PprStyle ( PprStyle(..) )
+import Pretty ( ppAbove, ppAboves, ppCat, ppBesides, ppStr, ppHang, SYN_IE(Pretty) )
+--import Pretty--ToDo:rm
+--import FiniteMap--ToDo:rm
+import SrcLoc ( mkGeneratedSrcLoc, SrcLoc )
+import TyCon ( tyConTyVars, tyConDataCons, tyConDerivings,
+ tyConTheta, maybeTyConSingleCon,
+ isEnumerationTyCon, isDataTyCon, TyCon
+ )
+import Type ( GenType(..), SYN_IE(TauType), mkTyVarTys, applyTyCon,
+ mkSigmaTy, mkDictTy, isPrimType, instantiateTy,
+ getAppDataTyCon, getAppTyCon
+ )
+import TysPrim ( voidTy )
+import TyVar ( GenTyVar )
+import UniqFM ( emptyUFM )
+import Unique -- Keys stuff
+import Util ( zipWithEqual, zipEqual, sortLt, removeDups, assoc,
+ thenCmp, cmpList, panic, panic#, pprPanic, pprPanic#,
+ assertPanic-- , pprTrace{-ToDo:rm-}
+ )