-import AbsSyn -- the stuff being desugared
-import PlainCore -- the output of desugaring;
- -- importing this module also gets all the
- -- CoreSyn utility functions
-import DsMonad -- the monadery used in the desugarer
-
-import AbsPrel ( mkFunTy, stringTy
- IF_ATTACK_PRAGMAS(COMMA mkListTy COMMA charTy)
- )
-import AbsUniType ( mkTyVarTy, quantifyTy, mkTupleTyCon,
- mkRhoTy, splitDictType, applyTyCon,
- getUniDataTyCon, isUnboxedDataType,
- TyVar, TyVarTemplate, TyCon, Arity(..), Class,
- UniType, RhoType(..), SigmaType(..)
- )
-import Id ( getIdUniType, getInstantiatedDataConSig,
- mkTupleCon, DataCon(..), Id
+IMP_Ubiq()
+IMPORT_DELOOPER(DsLoop) ( match, matchSimply )
+
+import HsSyn ( HsExpr(..), OutPat(..), HsLit(..),
+ Match, HsBinds, Stmt, Qualifier, PolyType, ArithSeqInfo )
+import TcHsSyn ( SYN_IE(TypecheckedPat) )
+import DsHsSyn ( outPatType )
+import CoreSyn
+
+import DsMonad
+
+import CoreUtils ( coreExprType, mkCoreIfThenElse )
+import PprStyle ( PprStyle(..) )
+import PrelVals ( iRREFUT_PAT_ERROR_ID, voidId )
+import Pretty ( ppShow )
+import Id ( idType, dataConArgTys, mkTupleCon,
+-- pprId{-ToDo:rm-},
+ SYN_IE(DataCon), SYN_IE(DictVar), SYN_IE(Id), GenId )
+import Literal ( Literal(..) )
+import TyCon ( mkTupleTyCon, isNewTyCon, tyConDataCons )
+import Type ( mkTyVarTys, mkRhoTy, mkForAllTys, mkFunTy,
+ mkTheta, isUnboxedType, applyTyCon, getAppTyCon