+
+import RnMonad
+import RnUtils ( RnEnv(..), extendGlobalRnEnv )
+import RnBinds ( rnMethodBinds, rnTopBinds )
+
+import Bag ( emptyBag{-ToDo:rm-}, Bag, isEmptyBag, unionBags, listToBag )
+import Class ( classKey, needsDataDeclCtxtClassKeys, GenClass )
+import ErrUtils ( pprBagOfErrors, addErrLoc, Error(..) )
+import Id ( dataConArgTys, isNullaryDataCon, mkDictFunId )
+import Maybes ( maybeToBool, Maybe(..) )
+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, 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(..), 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, pprPanic, pprPanic#,
+ assertPanic, pprTrace{-ToDo:rm-}
+ )