diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-01-14 09:57:07 +0000 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2022-01-14 09:57:07 +0000 |
commit | 21846c90935badf8c88736f48616eaf20754ae55 (patch) | |
tree | e63d1469a7f0a5ee27f0991e71f7bd0aa52334aa | |
parent | c2a6c3eb380891eb44d30529f0b9f8f6debf31c9 (diff) | |
download | haskell-21846c90935badf8c88736f48616eaf20754ae55.tar.gz |
Experiment: Make unionBags lazierwip/lazy-bag
-rw-r--r-- | compiler/GHC/Data/Bag.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/GHC/Data/Bag.hs b/compiler/GHC/Data/Bag.hs index 4171d7b03e..94a9ba86f8 100644 --- a/compiler/GHC/Data/Bag.hs +++ b/compiler/GHC/Data/Bag.hs @@ -74,7 +74,6 @@ unionManyBags xs = foldr unionBags EmptyBag xs unionBags :: Bag a -> Bag a -> Bag a unionBags EmptyBag b = b -unionBags b EmptyBag = b unionBags b1 b2 = TwoBags b1 b2 consBag :: a -> Bag a -> Bag a @@ -85,6 +84,8 @@ snocBag bag elt = bag `unionBags` (unitBag elt) isEmptyBag :: Bag a -> Bool isEmptyBag EmptyBag = True +isEmptyBag (TwoBags b1 b2) = isEmptyBag b1 && isEmptyBag b2 +isEmptyBag (ListBag xs) = null xs isEmptyBag _ = False -- NB invariants isSingletonBag :: Bag a -> Bool |