X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FdeSugar%2FMatchCon.lhs;h=d84b9013ccf728990f9c2dd3f60b812c79d209de;hp=2912e29a6f662aff3c84c15ac423dd15e0e264c9;hb=cbd7463c986d54422de15cb3b56184de116ef7ba;hpb=54e6de853bd5260389006e75d661877ef1ea951d diff --git a/compiler/deSugar/MatchCon.lhs b/compiler/deSugar/MatchCon.lhs index 2912e29..d84b901 100644 --- a/compiler/deSugar/MatchCon.lhs +++ b/compiler/deSugar/MatchCon.lhs @@ -23,15 +23,11 @@ import HsSyn import DsBinds import DataCon import TcType -import Type -import CoreSyn -import MkCore import DsMonad import DsUtils import Util ( all2, takeList, zipEqual ) import ListSetOps ( runs ) import Id -import Var ( Var ) import NameEnv import SrcLoc import Outputable @@ -141,10 +137,10 @@ matchOneCon vars ty (eqn1 : eqns) -- All eqns for a single constructor shift (_, eqn@(EqnInfo { eqn_pats = ConPatOut{ pat_tvs = tvs, pat_dicts = ds, pat_binds = bind, pat_args = args } : pats })) - = do { prs <- dsLHsBinds bind + = do { ds_ev_binds <- dsTcEvBinds bind ; return (wrapBinds (tvs `zip` tvs1) . wrapBinds (ds `zip` dicts1) - . mkCoreLet (Rec prs), + . wrapDsEvBinds ds_ev_binds, eqn { eqn_pats = conArgPats arg_tys args ++ pats }) } -- Choose the right arg_vars in the right order for this group