Don't import FastString in HsVersions.h
[ghc-hetmet.git] / compiler / simplCore / SimplEnv.lhs
index 10e243c..699ba7b 100644 (file)
@@ -46,7 +46,7 @@ module SimplEnv (
 
 #include "HsVersions.h"
 
-import SimplMonad      
+import SimplMonad
 import IdInfo
 import CoreSyn
 import Rules
@@ -64,7 +64,9 @@ import Coercion
 import BasicTypes      
 import DynFlags
 import Util
+import MonadUtils
 import Outputable
+import FastString
 
 import Data.List
 \end{code}
@@ -500,8 +502,8 @@ These functions are in the monad only so that they can be made strict via seq.
 \begin{code}
 simplBinders, simplLamBndrs
        :: SimplEnv -> [InBndr] -> SimplM (SimplEnv, [OutBndr])
-simplBinders  env bndrs = mapAccumLSmpl simplBinder  env bndrs
-simplLamBndrs env bndrs = mapAccumLSmpl simplLamBndr env bndrs
+simplBinders  env bndrs = mapAccumLM simplBinder  env bndrs
+simplLamBndrs env bndrs = mapAccumLM simplLamBndr env bndrs
 
 -------------
 simplBinder :: SimplEnv -> InBndr -> SimplM (SimplEnv, OutBndr)
@@ -526,7 +528,7 @@ simplLamBndr :: SimplEnv -> Var -> SimplM (SimplEnv, Var)
 -- The "{=(a,b)}" is an unfolding we can't reconstruct otherwise.
 simplLamBndr env bndr
   | isId bndr && hasSomeUnfolding old_unf = seqId id2 `seq` return (env2, id2)  -- Special case
-  | otherwise                            = seqId id1 `seq` return (env1, id1)  -- Normal case
+  | otherwise                            = simplBinder env bndr                -- Normal case
   where
     old_unf = idUnfolding bndr
     (env1, id1) = substIdBndr env bndr