X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FcoreSyn%2FCoreSyn.lhs;h=29b1ce467f71ed10689a9abef7cb7d65b8bd77bd;hb=9621257fcd85a572a5c305b77995bda62689bb86;hp=a10894524a24a42bb9ffc3e0165d29a7281d4009;hpb=133d09024cdead191873088b7248f5d96aafe60f;p=ghc-hetmet.git diff --git a/compiler/coreSyn/CoreSyn.lhs b/compiler/coreSyn/CoreSyn.lhs index a108945..29b1ce4 100644 --- a/compiler/coreSyn/CoreSyn.lhs +++ b/compiler/coreSyn/CoreSyn.lhs @@ -50,11 +50,13 @@ import StaticFlags ( opt_RuntimeTypes ) import CostCentre ( CostCentre, noCostCentre ) import Var ( Var, Id, TyVar, isTyVar, isId ) import Type ( Type, mkTyVarTy, seqType ) +import TyCon ( isNewTyCon ) import Coercion ( Coercion ) import Name ( Name ) import OccName ( OccName ) import Literal ( Literal, mkMachInt ) -import DataCon ( DataCon, dataConWorkId, dataConTag ) +import DataCon ( DataCon, dataConWorkId, dataConTag, dataConTyCon, + dataConWrapId ) import BasicTypes ( Activation ) import FastString import Outputable @@ -440,7 +442,9 @@ mkLets :: [Bind b] -> Expr b -> Expr b mkLams :: [b] -> Expr b -> Expr b mkLit lit = Lit lit -mkConApp con args = pprTrace "mkConApp" (ppr con) $ mkApps (Var (dataConWorkId con)) args +mkConApp con args + | isNewTyCon (dataConTyCon con) = mkApps (Var (dataConWrapId con)) args + | otherwise = mkApps (Var (dataConWorkId con)) args mkLams binders body = foldr Lam body binders mkLets binds body = foldr Let body binds