Obviously `mappend` is good enough as it is.

Choosing (+>) or (<>) are just for prettifying code.

Generalizing (++) not only makes the code prettier, but also brings Monoid
into the Prelude.

You can either Do It Right(tm), or be conservative and try to maintain
backwards compatibility as much as possible.

I suspect most people in the community understand the trade-offs here, and
would agree on the proper solution. If that means rewriting the standard,
then so be it.


On Wed, Jul 1, 2009 at 12:26 PM, Ross Paterson <r...@soi.city.ac.uk> wrote:

> On Wed, Jul 01, 2009 at 10:55:39AM -0700, Bryan O'Sullivan wrote:
> > Okay, here's a tentative plan that will help to figure out the answer.
> I'll
> > build a fiddled base package that rewires the Monoid class to have (++)
> be the
> > binary operator, and mappend as a synonym for it. I'll import the Monoid
> (++)
> > into the Prelude. I'll see how much breaks. If that much builds smoothly,
> I'll
> > see how much of the rest of Hackage builds, both with and without this
> custom
> > base package. I'll follow up here with the results, along with a
> suggestion of
> > how acceptable I think the observed level of breakage is.
>
> Generalizing (++) will break some Haskell 98 code, e.g.
>
>  append = (++)
>
> I think that's a show-stopper.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to