+
+import CoreUnfold ( UnfoldingDetails(..), UnfoldingGuidance(..),
+ FormSummary )
+import CoreUtils ( coreExprType, substCoreExpr, argToExpr,
+ mkCoreIfThenElse, unTagBinders )
+import CostCentre ( mkUserCC )
+import FieldLabel ( fieldLabelType, FieldLabel )
+import Id ( mkTupleCon, idType, nullIdEnv, addOneToIdEnv,
+ getIdUnfolding, dataConArgTys, dataConFieldLabels,
+ recordSelectorFieldLabel
+ )
+import Literal ( mkMachInt, Literal(..) )
+import MagicUFs ( MagicUnfoldingFun )
+import Name ( Name{--O only-} )
+import PprStyle ( PprStyle(..) )
+import PprType ( GenType )
+import PrelInfo ( mkTupleTy, unitTy, nilDataCon, consDataCon,
+ charDataCon, charTy, rEC_CON_ERROR_ID,
+ rEC_UPD_ERROR_ID
+ )
+import Pretty ( ppShow, ppBesides, ppPStr, ppStr )
+import TyCon ( isDataTyCon, isNewTyCon )
+import Type ( splitSigmaTy, splitFunTy, typePrimRep,
+ getAppDataTyCon, getAppTyCon, applyTy
+ )
+import TyVar ( nullTyVarEnv, addOneToTyVarEnv, GenTyVar{-instance Eq-} )
+import Usage ( UVar(..) )
+import Util ( zipEqual, pprError, panic, assertPanic )
+
+maybeBoxedPrimType = panic "DsExpr.maybeBoxedPrimType"
+splitTyArgs = panic "DsExpr.splitTyArgs"
+
+mk_nil_con ty = mkCon nilDataCon [] [ty] [] -- micro utility...