Sjoerd, I am sorry, as I already wrote, I decided to deprecate the package.
> [3] defines the union as h(u) = max(f(u), g(u)) where f, g and h are > multiplicity functions. Which is the same, as [3] is about multisets, not signed multisets. > [...] and this is also what your implementation does. (Map.unionWith max does > not do a max if the key is not in one of the maps, i.e. if one of the > multiplicities is 0.) I am aware of that. Why are you explaining this? > I think if your union would follow the definition with max as in [3] and [4] > it is not confusing. But then empty would not be the identity of that union > (that would be the signed multiset with multiplicity negative infinity for > all elements), so it would still not be a good choice for the Monoid instance. Let's agree to disagree. This is not constructive and, moreover, going nowhere. Cheers, Stefan >> [3] Apostolos Syropoulos: Mathematics of Multisets. WMP 2000: 347-358 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe