[Haskell-cafe] foldMap for semigroups

Oleg Grenrus oleg.grenrus at iki.fi
Fri May 14 20:13:10 UTC 2021


Is there a good reason why it does not have:

A good question. See
- (2017) https://gitlab.haskell.org/ghc/ghc/-/issues/13573
- (2017)
https://www.reddit.com/r/haskell/comments/6d0vgt/could_we_have_foldable1_and_traversable1_in_base/
- (2019)
https://mail.haskell.org/pipermail/libraries/2019-November/030059.html
- (2020)
https://mail.haskell.org/pipermail/libraries/2020-December/031003.html
- (2021) https://twitter.com/kmett/status/1363774888603914242

For recent bits and bobs of the possible answers.

- Oleg

On 14.5.2021 22.54, coot at coot.me wrote:
> Base has:
> * foldMap :: (Foldable t, Monoid a) => (x -> a) -> t x -> a
> * foldr1  :: (Foldable t) => (a -> a -> a) -> t x -> a
> Is there a good reason why it does not have:
> ```
> foldMap1 :: (Foldable t, Semigroup a, Functor f) => (a -> a) -> t x -> a
> foldMap1 = fodlr1 (<>) . fmap f
> ```
> Like `foldr1` it is partial for any foldable that can be empty.
>
> Best regards,
> Marcin Szamotulski
>
> Sent with ProtonMail Secure Email.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20210514/ece4c8fe/attachment.html>


More information about the Haskell-Cafe mailing list