Use mapAccumL (refactoring only)
authorSimon Peyton Jones <simonpj@microsoft.com>
Tue, 9 Sep 2014 11:57:04 +0000 (12:57 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 19 Sep 2014 10:41:12 +0000 (11:41 +0100)
Fixes Trac #9529

compiler/simplCore/CSE.lhs

index 740aa5f..289388a 100644 (file)
@@ -153,14 +153,7 @@ let-binding, and we can use cseRhs for dealing with the scrutinee.
 
 \begin{code}
 cseProgram :: CoreProgram -> CoreProgram
-cseProgram binds = cseBinds emptyCSEnv binds
-
-cseBinds :: CSEnv -> [CoreBind] -> [CoreBind]
-cseBinds _   []     = []
-cseBinds env (b:bs) = (b':bs')
-                    where
-                      (env1, b') = cseBind  env  b
-                      bs'        = cseBinds env1 bs
+cseProgram binds = snd (mapAccumL cseBind emptyCSEnv binds)
 
 cseBind :: CSEnv -> CoreBind -> (CSEnv, CoreBind)
 cseBind env (NonRec b e)