Add NonEmptyMap and NonEmptySet to containers

Keith keith.wygant at
Fri Oct 18 15:40:02 UTC 2019

Sorry about bikeshedding. However, 'semifoldable' would be super confusing.

If somebody saw 'semifoldMap' in the wild what would they think? Probably not that it can fold _more_ things than 'foldMap'.

'NonemptyFoldable', 'Semigroup.Foldable', 'SemigroupFoldable', and 'Foldable1', with 'sfoldMap', 'sgFoldMap', 'nonemptyFoldMap', or 'Semigroup.foldMap' may be long or meaningless to most, but at least they aren't actively misleading.


On October 18, 2019 2:13:51 PM UTC, Oleg Grenrus <oleg.grenrus at> wrote:
>Relating to Foldable1/NonEmptyFoldable, based in another discussion (in
>my foldable1 to base proposal), it looks like it might be called 
>Yet, Semiset is different thing (based on wikipedia: 
> NonEmptySet is a good name, it 
>doesn't need explanation. If someone feels that it's too long, they can
>introduce `type NESet = NonEmptySet` alias in their development.
>- Oleg
>On 20.9.2019 4.56, Ruben Astudillo wrote:
>> On 19-09-19 22:17, Alexandre Esteves wrote:
>>> I do like the sound of `instance Foldable1 Set1` more than I do
>>> `instance NonEmptyFoldable NonEmptySet`
>> I prefer it too, I just wish (future) documentation included a little
>> explanation on why the suffix 1 was put.
>Libraries mailing list
>Libraries at

Sent from my phone with K-9 Mail.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list