
On Sun, Aug 14, 2011 at 4:20 PM, Yitzchak Gale
I think I've made my position clear, so I'm going to stop beating the drum and giving everyone a headache. But for a different reason, I feel I do need to respond to one more comment:
Johan Tibell wrote:
We're not going to stop changing base because someone added an operator with the same name as we'd like to use in some package on Hackage.
That is really not fair to Edward. He is not just "someone" - he is one of today's leading contributors to Haskell's ecosystem, both in quantity and in quality. When he makes a contribution directed at a general audience, like this one, it is intuitive, practical, performant, elegant, carefully considered, and based on deep theoretical harmony.
Edward did not just add "an operator with the same name". He implemented this ticket, the right way. It's done. You can already use <> today - just say "import Data.Semigroup ((<>))". If you want to put that in base, go right ahead.
Please don't imply that I am against making changes to base in general. The reason we came to this situation in the first place is that the original proposal languished for so long. At least this time, whatever we decide will be implemented right away. :)
As I type this, Edward himself has come out in favor of the original proposal, thus breaking all code based on his own package. So I guess that settles it.
Thank you for the support. In a perfect world, I would like to have the (<>) operator be in semigroup and the monoid class just lose mappend, being just mempty. This would let us fix the broken monoid instance for Maybe, dropping the need for Option in the semigroups package and let us introduce nice Min and Max semigroups. But I could live with the (<>) = mappend compromise. I'm sure it somehow makes someone somewhere happier than doing the right thing. -Edward
Thanks, Yitz
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries