Proposal: Make Semigroup as a superclass of Monoid

Malcolm Wallace malcolm.wallace at me.com
Wed Apr 29 18:28:02 UTC 2015


On 29 Apr 2015, at 16:39, Edward Kmett wrote:

> Well, it seems the consensus is high enough that we'll try to go ahead with this. As it affects the Prelude, we may put out another poll / wider broadcast just to avoid any appearance of ambushing folks with another change to the Prelude without announcement, but I think at this point my intent is to pick a path to make this happen.

Whilst the change itself might have merit, I have to say I'm getting really fed up of all these tiny and piecemeal change proposals for the Prelude.  I'd be much more in favour of something radical, like removing 80% of the Prelude altogether, and forcing people to import list operations from Data.List, monad stuff from Control.Monad, number hierarchies from Data.Numeric, etc.  Then we would not have to suffer all of these long-drawn-out and painful yet minor breakages in future.  With a minimal Prelude, all of the recent proposed changes, from Applicative/Monad, to Foldable/Traversable, to Semigroup/Monoid, could have been achieved purely via libraries, and if someone doesn't like a change, they can just pick a different library.

Regards,
    Malcolm


More information about the Libraries mailing list