[project @ 2005-04-05 09:22:27 by simonmar]
[ghc-hetmet.git] / ghc / compiler / simplCore / CSE.lhs
index 6ecd70e..2e8489a 100644 (file)
@@ -10,14 +10,12 @@ module CSE (
 
 #include "HsVersions.h"
 
-import CmdLineOpts     ( DynFlag(..), DynFlags )
+import DynFlags        ( DynFlag(..), DynFlags )
 import Id              ( Id, idType, idWorkerInfo )
 import IdInfo          ( workerExists )
 import CoreUtils       ( hashExpr, cheapEqExpr, exprIsBig, mkAltExpr, exprIsCheap )
 import DataCon         ( isUnboxedTupleCon )
 import Type            ( tyConAppArgs )
-import Subst           ( InScopeSet, uniqAway, emptyInScopeSet, 
-                         extendInScopeSet, elemInScopeSet )
 import CoreSyn
 import VarEnv  
 import CoreLint                ( showPass, endPass )
@@ -134,8 +132,8 @@ cseBinds env (b:bs) = (b':bs')
                      bs'        = cseBinds env1 bs
 
 cseBind :: CSEnv -> CoreBind -> (CSEnv, CoreBind)
-cseBind env (NonRec b e) = let (env', (_,e')) = do_one env (b, e)
-                          in (env', NonRec b e')
+cseBind env (NonRec b e) = let (env', (b',e')) = do_one env (b, e)
+                          in (env', NonRec b' e')
 cseBind env (Rec pairs)  = let (env', pairs') = mapAccumL do_one env pairs
                           in (env', Rec pairs')
                         
@@ -177,7 +175,7 @@ cseExpr env (Lam b e)                  = let (env', b') = addBinder env b
                                     in Lam b' (cseExpr env' e)
 cseExpr env (Let bind e)          = let (env', bind') = cseBind env bind
                                     in Let bind' (cseExpr env' e)
-cseExpr env (Case scrut bndr alts) = Case scrut' bndr' (cseAlts env' scrut' bndr bndr' alts)
+cseExpr env (Case scrut bndr ty alts) = Case scrut' bndr' ty (cseAlts env' scrut' bndr bndr' alts)
                                   where
                                     scrut' = tryForCSE env scrut
                                     (env', bndr') = addBinder env bndr