What I'm doing is pushing out a new major version of semigroups that adds the export of Monoid(..) to the subset of Data.Monoid that it re-exports. I'm also changing its associativity to the right to match the one that tibbe is going to put into Data.Monoid.
Sebastian Fischer wrote:Thanks Sebastian, you're right, I misread that. I wouldn't have
> The proposal is not to replace 'mappend' in the Monoid class with <>. The
> proposal is to add the top-level definition
> (<>) = mappend
> to Data.Monoid.
made nearly as much noise then. It's still bad to have two
definitions of <> that appear to be the same but are in reality
two different functions. But in the short term, that won't cause
me nearly as much damage.
In the long term, it is perhaps worse. It means that now even
superclass defaulting won't completely solve the problem -
you can silently get the wrong function without noticing.
That would be a very difficult bug to find.
Note that this is worse than, for example, libraries that shadow
Prelude functions. There, if you don't use the right qualified/hiding
incantation, you'll generally get a compile error.
Anyway, I apologize for grossly overreacting. If anyone needs
me in the near future, please look inside the hole I am
currently digging for myself.
Thanks,
Yitz
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries