Commit cdf6b695 authored by Simon Peyton Jones's avatar Simon Peyton Jones Committed by David Feuer
Browse files

Add VarSet.anyDVarSet, allDVarSet

I need these in a later commit.

Also rename
  varSetAny  -->  anyVarSet
  varSetAll  -->  allVarSet
for consistency with other functions; eg filterVarSet

Reviewers: austin, goldfire, bgamari

Subscribers: niteria, thomie

Differential Revision: https://phabricator.haskell.org/D3202
parent 4f10a229
......@@ -17,7 +17,7 @@ module VarSet (
intersectVarSet, intersectsVarSet, disjointVarSet,
isEmptyVarSet, delVarSet, delVarSetList, delVarSetByKey,
minusVarSet, filterVarSet,
varSetAny, varSetAll,
anyVarSet, allVarSet,
transCloVarSet, fixVarSet,
lookupVarSet, lookupVarSetByName,
sizeVarSet, seqVarSet,
......@@ -35,7 +35,7 @@ module VarSet (
intersectDVarSet, intersectsDVarSet, disjointDVarSet,
isEmptyDVarSet, delDVarSet, delDVarSetList,
minusDVarSet, foldDVarSet, filterDVarSet,
dVarSetMinusVarSet,
dVarSetMinusVarSet, anyDVarSet, allDVarSet,
transCloDVarSet,
sizeDVarSet, seqDVarSet,
partitionDVarSet,
......@@ -50,7 +50,7 @@ import Name ( Name )
import UniqSet
import UniqDSet
import UniqFM( disjointUFM, pluralUFM, pprUFM )
import UniqDFM( disjointUDFM, udfmToUfm )
import UniqDFM( disjointUDFM, udfmToUfm, anyUDFM, allUDFM )
import Outputable (SDoc)
-- | A non-deterministic Variable Set
......@@ -139,11 +139,11 @@ intersectsVarSet s1 s2 = not (s1 `disjointVarSet` s2)
disjointVarSet s1 s2 = disjointUFM s1 s2
subVarSet s1 s2 = isEmptyVarSet (s1 `minusVarSet` s2)
varSetAny :: (Var -> Bool) -> VarSet -> Bool
varSetAny = uniqSetAny
anyVarSet :: (Var -> Bool) -> VarSet -> Bool
anyVarSet = uniqSetAny
varSetAll :: (Var -> Bool) -> VarSet -> Bool
varSetAll = uniqSetAll
allVarSet :: (Var -> Bool) -> VarSet -> Bool
allVarSet = uniqSetAll
-- There used to exist mapVarSet, see Note [Unsound mapUniqSet] in UniqSet for
-- why it got removed.
......@@ -282,6 +282,12 @@ dVarSetMinusVarSet = uniqDSetMinusUniqSet
foldDVarSet :: (Var -> a -> a) -> a -> DVarSet -> a
foldDVarSet = foldUniqDSet
anyDVarSet :: (Var -> Bool) -> DVarSet -> Bool
anyDVarSet = anyUDFM
allDVarSet :: (Var -> Bool) -> DVarSet -> Bool
allDVarSet = allUDFM
filterDVarSet :: (Var -> Bool) -> DVarSet -> DVarSet
filterDVarSet = filterUniqDSet
......
......@@ -864,7 +864,7 @@ match_alts _ _ _ _
------------------------------------------
okToFloat :: RnEnv2 -> VarSet -> Bool
okToFloat rn_env bind_fvs
= varSetAll not_captured bind_fvs
= allVarSet not_captured bind_fvs
where
not_captured fv = not (inRnEnvR rn_env fv)
......
......@@ -911,7 +911,7 @@ anyRewritableTyVar ignore_cos pred ty
go_co bound co
| ignore_cos = False
| otherwise = varSetAny (go_tv bound) (tyCoVarsOfCo co)
| otherwise = anyVarSet (go_tv bound) (tyCoVarsOfCo co)
-- We don't have an equivalent of anyRewritableTyVar for coercions
-- (at least not yet) so take the free vars and test them
......
......@@ -522,7 +522,7 @@ niFixTCvSubst tenv = f tenv
| not_fixpoint = f (mapVarEnv (substTy subst') tenv)
| otherwise = subst
where
not_fixpoint = varSetAny in_domain range_tvs
not_fixpoint = anyVarSet in_domain range_tvs
in_domain tv = tv `elemVarEnv` tenv
range_tvs = nonDetFoldUFM (unionVarSet . tyCoVarsOfType) emptyVarSet tenv
......@@ -1223,7 +1223,7 @@ ty_co_match menv subst ty co lkco rkco
= noneSet (\v -> elemVarEnv v env) set
noneSet :: (Var -> Bool) -> VarSet -> Bool
noneSet f = varSetAll (not . f)
noneSet f = allVarSet (not . f)
ty_co_match menv subst ty co lkco rkco
| CastTy ty' co' <- ty
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment