Sjoerd,

>>>> For a specific example, I haven't the faintest intuition about
>>>> what 'map' should do.  Suppose we have
>>>>    {(k1)x1, (k2)x2}
>>>> and f x1 == f x2 = y.  Should the value of map f {...} be
>>>> {(k1+k2)y} or {(k1`max`k2)y} or what?

> I don't think max would be a good choice, as that would mean that the default 
> multiplicity would have to be negative infinity (the identity element of max) 
> instead of 0, and then using Int as the type for multiplicity would not cut 
> it.

Why would one need such an identity element for map?

Note that the monoidal structure isn't defined over the "maximum of 
multiplicites" but over the "maximum of *nonzero* multiplicites". (For ordinary 
sets and ordinary multisets these operations happen to coincide.)

Cheers,

  Stefan

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to