Proposal: Make Semigroup as a superclass of Monoid
michael at snoyman.com
Sun Mar 29 12:23:54 UTC 2015
I'm tentatively +1 on this proposal, presuming we have a solid migration
path for the semigroups package (which seems trivial if Edward's on board
with this), and barring any solid objections in this discussion.
On Sun, Mar 29, 2015 at 3:21 PM Jeremy <voldermort at hotmail.com> wrote:
> The proposal to make Semigroup a superclass of Monoid was discussed a while
> ago , and the conclusion was to "put this off until the dust has settled
> from the AMP and FT changes".
> Now that 7.10 is out, I would like to re-propose. The proposed plan is
> similar to AMP, but less invasive, as (in my subjective experience)
> user-defined Monoids are much less common than user-defined Monads.
> 1. GHC 7.12 will include Semigroup and NonEmpty in base. All Monoid
> instances, and anything else which forms a Semigroup, will have a Semigroup
> instance. GHC will issue a warning when it encounters an instance of Monoid
> which is not an instance of Semigroup.
> 2. GHC >7.12 will define Monoid as a subclass of Semigroup.
> Stage 2 could be delayed - or in the extreme case, cancelled - if the
> warnings following stage 1 indicate that the proposal would cause
> significant breakage of existing code, although this is not anticipated.
> The rationale for this change is:
> 1. Semigroup is a popular package (this is relevant in combination with the
> following point).
> 2. Using an existing Monoid as a Semigroup requires redefining it (or
> WrappedMonoid), leading to much boilerplate and duplication.
> 3. NonEmpty is often redefined by beginners (or those who don't think it's
> worth having an extra dependency for).
>  https://mail.haskell.org/pipermail/libraries/2013-June/020188.html
> View this message in context: http://haskell.1045720.n5.
> Sent from the Haskell - Libraries mailing list archive at Nabble.com.
> Libraries mailing list
> Libraries at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libraries