diff options
Diffstat (limited to 'compiler/utils')
| -rw-r--r-- | compiler/utils/UniqDFM.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/utils/UniqDFM.hs b/compiler/utils/UniqDFM.hs index 4bd97ef2eb..91fb0ecbec 100644 --- a/compiler/utils/UniqDFM.hs +++ b/compiler/utils/UniqDFM.hs @@ -42,7 +42,7 @@ module UniqDFM ( filterUDFM, isNullUDFM, sizeUDFM, - intersectUDFM, + intersectUDFM, udfmIntersectUFM, intersectsUDFM, disjointUDFM, disjointUdfmUfm, minusUDFM, @@ -275,6 +275,11 @@ intersectUDFM (UDFM x i) (UDFM y _j) = UDFM (M.intersection x y) i -- M.intersection is left biased, that means the result will only have -- a subset of elements from the left set, so `i` is a good upper bound. +udfmIntersectUFM :: UniqDFM elt -> UniqFM elt -> UniqDFM elt +udfmIntersectUFM (UDFM x i) y = UDFM (M.intersection x (ufmToIntMap y)) i + -- M.intersection is left biased, that means the result will only have + -- a subset of elements from the left set, so `i` is a good upper bound. + intersectsUDFM :: UniqDFM elt -> UniqDFM elt -> Bool intersectsUDFM x y = isNullUDFM (x `intersectUDFM` y) |
