CoreRules(..), CoreRule(..),
emptyCoreRules, isEmptyCoreRules, seqRules
)
-import CoreFVs ( exprFreeVars )
+import CoreFVs ( exprFreeVars, mustHaveLocalBinding )
import TypeRep ( Type(..), TyNote(..),
) -- friend
import Type ( ThetaType, PredType(..), ClassContext,
import VarEnv
import Var ( setVarUnique, isId )
import Id ( idType, setIdType, idOccInfo, zapFragileIdInfo )
-import Name ( isLocallyDefined )
import IdInfo ( IdInfo, isFragileOccInfo,
specInfo, setSpecInfo,
WorkerInfo(..), workerExists, workerInfo, setWorkerInfo, WorkerInfo
= case lookupVarEnv in_scope v of
Just v' | v == v' -> v' -- Reached a fixed point
| otherwise -> lookupInScope in_scope v'
- Nothing -> v
+ Nothing -> WARN( mustHaveLocalBinding v, ppr v )
+ v
isInScope :: Var -> Subst -> Bool
isInScope v (Subst in_scope _) = v `elemVarEnv` in_scope