From: simonpj Date: Wed, 27 Jul 2005 11:55:43 +0000 (+0000) Subject: [project @ 2005-07-27 11:55:43 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~299 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=03aa4b6dfb67cc20b94b5fb19c8e8c5958603ea6;p=ghc-hetmet.git [project @ 2005-07-27 11:55:43 by simonpj] Bogon in RULE desguaring --- diff --git a/ghc/compiler/deSugar/DsBinds.lhs b/ghc/compiler/deSugar/DsBinds.lhs index 87fda8e..5be1774 100644 --- a/ghc/compiler/deSugar/DsBinds.lhs +++ b/ghc/compiler/deSugar/DsBinds.lhs @@ -266,11 +266,13 @@ decomposeRuleLhs all_bndrs lhs -- Substitute dicts in the LHS args, so that there -- aren't any lets getting in the way + -- Note that we substitute the function too; we might have this as + -- a LHS: let f71 = M.f Int in f71 go env (Let (NonRec dict rhs) body) = go (extendVarEnv env dict (simpleSubst env rhs)) body go env body - = case collectArgs body of - (Var fn, args) -> Just (all_bndrs', fn, map (simpleSubst env) args) + = case collectArgs (simpleSubst env body) of + (Var fn, args) -> Just (all_bndrs', fn, args) other -> Nothing simpleSubst :: IdEnv CoreExpr -> CoreExpr -> CoreExpr