diff options
author | simonpj@microsoft.com <unknown> | 2006-02-03 17:46:27 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2006-02-03 17:46:27 +0000 |
commit | 7985849b10db59b566d1864075b97b5d11d3a31d (patch) | |
tree | c0caf305995eb226c3023eba80adf1492b542957 /ghc/compiler | |
parent | 04fd714108aa00aeebe0b954259e51dac281c245 (diff) | |
download | haskell-7985849b10db59b566d1864075b97b5d11d3a31d.tar.gz |
Add Bag.anyBag (analogous to List.any)
Diffstat (limited to 'ghc/compiler')
-rw-r--r-- | ghc/compiler/utils/Bag.lhs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ghc/compiler/utils/Bag.lhs b/ghc/compiler/utils/Bag.lhs index 4ee8b0fafb..b107f84a3a 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 |