Proposal: generalise Monoid's mconcat

Reid Barton rwbarton at gmail.com
Mon Aug 31 18:47:53 UTC 2015


On Mon, Aug 31, 2015 at 1:54 PM, Fermin Reig <ferminreig at fastmail.fm> wrote:

> We could generalise:
>
> mconcat:: [a] -> a
> mconcat = foldr mappend memtpy
>
> to:
>
> mconcat:: Foldable t => t a -> a
> mconcat = foldr mappend memtpy
> -- even
> -- mconcat = fold
>

I don't understand the appeal of generalizing the type of a function when
the generalization already exists; but in this case it's not a viable
option anyways because mconcat is a class method of Monoid, and the
definition of the Foldable class already refers to Monoid. Creating a
circular dependency of Monoid on Foldable would be a headache best avoided.

Regards,
Reid Barton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20150831/35e9ce96/attachment.html>


More information about the Libraries mailing list