Proposal: Add Foldable1 from 'semigroupoids' to base

Daniel Cartwright chessai1996 at gmail.com
Thu Jun 7 19:12:48 UTC 2018


For those of you unfamiliar with 'Foldable1', it is a typeclass for
nonempty foldable structures, that centres around Semigroup instead of
Monoid.
I have made a differential on Phabricator for the change here:
https://phabricator.haskell.org/D4812

Some discussion at the following links also:

https://ghc.haskell.org/trac/ghc/ticket/13573

https://www.reddit.com/r/haskell/comments/8p531d/ann_safefoldable_safe_wrappers_for_nullpartial/

https://github.com/ekmett/semigroupoids/issues/49

Note: foldl1 and foldr1 are currently typeclass methods of 'Foldable' and
not 'Foldable1', and even though I think they should be, they probably (and
shouldn't) be removed in this change, though I hope that eventually they
can be moved to Foldable1.

Foldable1 is also unfortunately named due to the suffix '1' being
connotated with the conventions surrounded Data.Functor.Classes (Show1,
Eq1, etc.). If this naming is seen as sufficiently unfortunate/confusing
because of that, then perhaps the name should be changed to something like
'SemiFoldable'. The name change would most likely have to be made in
'semigroupoids' first if that is the case.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180607/56cec3f2/attachment.html>


More information about the Libraries mailing list