-- ToDo: remove the minusVarSet;
-- since escs won't include any of these binders
)
+ vars_alg_alt other = pprPanic "vars_alg_alt" (ppr other)
vars_deflt Nothing
= returnLne (StgNoDefault, emptyFVInfo, emptyVarSet)
minusFVBinders vs fv = foldr minusFVBinder fv vs
minusFVBinder :: Id -> FreeVarsInfo -> FreeVarsInfo
-minusFVBinder v fv | isId v = (fv `delVarEnv` v) `unionFVInfo`
- tyvarFVInfo (tyVarsOfType (idType v))
- | otherwise = fv `delVarEnv` v
+minusFVBinder v fv | isId v && opt_KeepStgTypes
+ = (fv `delVarEnv` v) `unionFVInfo`
+ tyvarFVInfo (tyVarsOfType (idType v))
+ | otherwise
+ = fv `delVarEnv` v
-- When removing a binder, remember to add its type variables
-- c.f. CoreFVs.delBinderFV