-import TcMonad -- typechecking monad machinery
-import TcMonadFns ( mkIdsWithOpenTyVarTys )
-import AbsSyn -- the stuff being typechecked
-
-import AbsPrel ( mkFunTy )
-import AbsUniType ( isTyVarTy, maybeUnpackFunTy )
-import E ( E, growE_LVE, LVE(..), GVE(..) )
-#if USE_ATTACK_PRAGMAS
-import CE
-import TCE
-#endif
-import Errors ( varyingArgsErr, Error(..), UnifyErrContext(..) )
-import LIE ( LIE, plusLIE )
-import Maybes ( Maybe(..) )
-import TcGRHSs ( tcGRHSsAndBinds )
+import Ubiq
+
+import HsSyn ( Match(..), GRHSsAndBinds(..), GRHS(..), InPat,
+ HsExpr, HsBinds, OutPat, Fake,
+ collectPatBinders, pprMatch )
+import RnHsSyn ( RenamedMatch(..) )
+import TcHsSyn ( TcIdOcc(..), TcMatch(..) )
+
+import TcMonad
+import Inst ( Inst, LIE(..), plusLIE )
+import TcEnv ( newMonoIds )
+import TcLoop ( tcGRHSsAndBinds )