A bag is an unordered collection of elements which may contain duplicates. To use, `import Bag'.
emptyBag :: Bag elt
unitBag :: elt -> Bag elt
unionBags :: Bag elt -> Bag elt -> Bag elt
unionManyBags :: [Bag elt] -> Bag elt
snocBag :: Bag elt -> elt -> Bag elt
elemBag :: Eq elt => elt -> Bag elt -> Bool
isEmptyBag :: Bag elt -> Bool
filterBag :: (elt -> Bool) -> Bag elt -> Bag elt
partitionBag :: (elt -> Bool) -> Bag elt-> (Bag elt, Bag elt)
-- returns the elements that do/don't satisfy the predicate
listToBag :: [elt] -> Bag elt
bagToList :: Bag elt -> [elt]