summaryrefslogtreecommitdiff
path: root/compiler/utils
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2012-10-03 16:10:16 +0100
committerIan Lynagh <ian@well-typed.com>2012-10-03 16:10:16 +0100
commita6b0ab269e74ca06445230a243065a0e35bc1916 (patch)
tree5a34d9b5e4b7a5880ba80846fdc08b780d716e49 /compiler/utils
parent1b3f27473ce5e15392e65c1cc264e0ef86d1eade (diff)
parent65e6470c39e9d45cbdb7834486bcae7f4a6259e6 (diff)
downloadhaskell-a6b0ab269e74ca06445230a243065a0e35bc1916.tar.gz
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Diffstat (limited to 'compiler/utils')
-rw-r--r--compiler/utils/UniqFM.lhs5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/utils/UniqFM.lhs b/compiler/utils/UniqFM.lhs
index d4a270dd0e..7b5a7aae44 100644
--- a/compiler/utils/UniqFM.lhs
+++ b/compiler/utils/UniqFM.lhs
@@ -51,7 +51,7 @@ module UniqFM (
foldUFM, foldUFM_Directly,
mapUFM, mapUFM_Directly,
elemUFM, elemUFM_Directly,
- filterUFM, filterUFM_Directly,
+ filterUFM, filterUFM_Directly, partitionUFM,
sizeUFM,
isNullUFM,
lookupUFM, lookupUFM_Directly,
@@ -146,6 +146,7 @@ mapUFM :: (elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2
mapUFM_Directly :: (Unique -> elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2
filterUFM :: (elt -> Bool) -> UniqFM elt -> UniqFM elt
filterUFM_Directly :: (Unique -> elt -> Bool) -> UniqFM elt -> UniqFM elt
+partitionUFM :: (elt -> Bool) -> UniqFM elt -> (UniqFM elt, UniqFM elt)
sizeUFM :: UniqFM elt -> Int
--hashUFM :: UniqFM elt -> Int
@@ -232,6 +233,8 @@ mapUFM f (UFM m) = UFM (M.map f m)
mapUFM_Directly f (UFM m) = UFM (M.mapWithKey (f . getUnique) m)
filterUFM p (UFM m) = UFM (M.filter p m)
filterUFM_Directly p (UFM m) = UFM (M.filterWithKey (p . getUnique) m)
+partitionUFM p (UFM m) = case M.partition p m of
+ (left, right) -> (UFM left, UFM right)
sizeUFM (UFM m) = M.size m
elemUFM k (UFM m) = M.member (getKey $ getUnique k) m