X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Frename%2FRnEnv.lhs;fp=compiler%2Frename%2FRnEnv.lhs;h=1a05139444f557f1a44d0c2910e6ff589edf8528;hb=b87e22d21055cd2bee40f0cc6873f1dcbe60fd01;hp=69272801cd621dbe549ec236b939d976e48d645d;hpb=858a5b2607fc14f55e285127996c8af24a90b00e;p=ghc-hetmet.git diff --git a/compiler/rename/RnEnv.lhs b/compiler/rename/RnEnv.lhs index 6927280..1a05139 100644 --- a/compiler/rename/RnEnv.lhs +++ b/compiler/rename/RnEnv.lhs @@ -23,7 +23,7 @@ module RnEnv ( addLocalFixities, bindLocatedLocalsFV, bindLocatedLocalsRn, bindSigTyVarsFV, bindPatSigTyVars, bindPatSigTyVarsFV, - bindTyVarsRn, extendTyVarEnvFVRn, + bindTyVarsRn, bindTyVarsFV, extendTyVarEnvFVRn, checkDupRdrNames, checkDupAndShadowedRdrNames, checkDupNames, checkDupAndShadowedNames, @@ -836,7 +836,7 @@ bindLocalName name enclosed_scope bindLocalNamesFV :: [Name] -> RnM (a, FreeVars) -> RnM (a, FreeVars) bindLocalNamesFV names enclosed_scope = do { (result, fvs) <- bindLocalNames names enclosed_scope - ; return (result, delListFromNameSet fvs names) } + ; return (result, delFVs names fvs) } ------------------------------------- @@ -847,9 +847,17 @@ bindLocatedLocalsFV :: [Located RdrName] bindLocatedLocalsFV rdr_names enclosed_scope = bindLocatedLocalsRn rdr_names $ \ names -> enclosed_scope names `thenM` \ (thing, fvs) -> - return (thing, delListFromNameSet fvs names) + return (thing, delFVs names fvs) ------------------------------------- +bindTyVarsFV :: [LHsTyVarBndr RdrName] + -> ([LHsTyVarBndr Name] -> RnM (a, FreeVars)) + -> RnM (a, FreeVars) +bindTyVarsFV tyvars thing_inside + = bindTyVarsRn tyvars $ \ tyvars' -> + do { (res, fvs) <- thing_inside tyvars' + ; return (res, delFVs (map hsLTyVarName tyvars') fvs) } + bindTyVarsRn :: [LHsTyVarBndr RdrName] -> ([LHsTyVarBndr Name] -> RnM a) -> RnM a