diff --git a/ghc/compiler/utils/Bag.lhs b/ghc/compiler/utils/Bag.lhs
index 4ee8b0fafb3c76cede275526c4fd3064a93eaf61..b107f84a3a43ffcf04a9c9c5fd8ae6ef5ed5a5b8 100644
--- a/ghc/compiler/utils/Bag.lhs
+++ b/ghc/compiler/utils/Bag.lhs
@@ -11,7 +11,7 @@ module Bag (
 	mapBag,
 	elemBag,
 	filterBag, partitionBag, concatBag, foldBag, foldrBag, foldlBag,
-	isEmptyBag, isSingletonBag, consBag, snocBag,
+	isEmptyBag, isSingletonBag, consBag, snocBag, anyBag,
 	listToBag, bagToList, 
 	mapBagM, mapAndUnzipBagM
     ) where
@@ -75,6 +75,12 @@ filterBag pred (TwoBags b1 b2) = sat1 `unionBags` sat2
 				 sat2 = filterBag pred b2
 filterBag pred (ListBag vs)    = listToBag (filter pred vs)
 
+anyBag :: (a -> Bool) -> Bag a -> Bool
+anyBag p EmptyBag        = False
+anyBag p (UnitBag v)     = p v
+anyBag p (TwoBags b1 b2) = anyBag p b1 || anyBag p b2
+anyBag p (ListBag xs)    = any p xs
+
 concatBag :: Bag (Bag a) -> Bag a
 concatBag EmptyBag 	    = EmptyBag
 concatBag (UnitBag b)       = b