From 03aa4b6dfb67cc20b94b5fb19c8e8c5958603ea6 Mon Sep 17 00:00:00 2001 From: simonpj Date: Wed, 27 Jul 2005 11:55:43 +0000 Subject: [PATCH] [project @ 2005-07-27 11:55:43 by simonpj] Bogon in RULE desguaring --- ghc/compiler/deSugar/DsBinds.lhs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 -- 1.7.10.4