add mapFilter
authorSimon Marlow <marlowsd@gmail.com>
Wed, 18 Jul 2012 12:59:54 +0000 (13:59 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 18 Jul 2012 12:59:54 +0000 (13:59 +0100)
src/Compiler/Hoopl/Collections.hs
src/Compiler/Hoopl/Label.hs
src/Compiler/Hoopl/Unique.hs

index e7b1755..774ef54 100644 (file)
@@ -72,6 +72,7 @@ class IsMap map where
   mapMapWithKey :: (KeyOf map -> a -> b) -> map a -> map b
   mapFold :: (a -> b -> b) -> b -> map a -> b
   mapFoldWithKey :: (KeyOf map -> a -> b -> b) -> b -> map a -> b
+  mapFilter :: (a -> Bool) -> map a -> map a
 
   mapElems :: map a -> [a]
   mapKeys :: map a -> [KeyOf map]
index e8a7f0b..b0cc71b 100644 (file)
@@ -91,6 +91,7 @@ instance IsMap LabelMap where
   mapMapWithKey f (LM m) = LM (mapMapWithKey (f . uniqueToLbl) m)
   mapFold k z (LM m) = mapFold k z m
   mapFoldWithKey k z (LM m) = mapFoldWithKey (k . uniqueToLbl) z m
+  mapFilter f (LM m) = LM (mapFilter f m)
 
   mapElems (LM m) = mapElems m
   mapKeys (LM m) = map uniqueToLbl (mapKeys m)
index b69cbee..563f83a 100644 (file)
@@ -90,6 +90,7 @@ instance IsMap UniqueMap where
   mapMapWithKey f (UM m) = UM (M.mapWithKey (f . intToUnique) m)
   mapFold k z (UM m) = M.fold k z m
   mapFoldWithKey k z (UM m) = M.foldWithKey (k . intToUnique) z m
+  mapFilter f (UM m) = UM (M.filter f m)
 
   mapElems (UM m) = M.elems m
   mapKeys (UM m) = M.keys m