Sjoerd, >>> [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. > > Chapter 3 of [3] is about Hybrid Sets.
And there the union is defined by taking the *minimum* of multiplicities, which is even more strange. >>> [...] 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? > > Because we can't seem to get to an agreement. Usually this is because of a > misunderstanding, so I try be as clear as possible, so you can understand my > position, or point out my mistake. I don't think you are mistaken. I think that 1. you're happy with the monoid over additiveUnion; 2. you're not happy with the definition of union. I'm not a mathematician, but I can see value in how union is defined now: it nicely generalises familiar concepts and associated properties (!) from sets and bags, and there seems to be support for it in literature. >> Let's agree to disagree. This is not constructive and, moreover, going >> nowhere. > I'd prefer to keep arguing actually. ;-) But if you have something better to > do, I won't bother you anymore. I do enjoy this kind of discussion, but I think neither one of us will be able to convince the other. I am totally okay with that. That is not to say that I cannot be convinced by new, more compelling arguments. Cheers, Stefan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe