Proposal: Make Semigroup as a superclass of Monoid

Edward Kmett ekmett at
Tue May 12 22:33:43 UTC 2015

For folding containers of size >=1 with a semigroup I usually turn to
classes from the semigroupoids package:

They are placed there, rather than in something like semigroups, because
the 'return-less' variants of Monad and Applicative they need to provide
most operations are placed in that package.


On Tue, May 12, 2015 at 3:05 PM, Henning Thielemann <
lemming at> wrote:

> On Tue, 5 May 2015, Greg Weber wrote:
>  The issue you have not raised that I am more concerned with is that
>> NonEmpty only works for lists.
>> Michael and I figured out how to extend the concept to any (Mono)Foldable
>> structure and also to be able to
>> demand lengths of > 1.
> It's possible with the structure provided by "non-empty". It is also
> possible to construct types for lists of fixed length or lists with an
> arbitrary set of allowed lengths.
> _______________________________________________
> Libraries mailing list
> Libraries at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list