Alternative.some and NonEmpty

Mario Blažević mblazevic at
Tue Mar 7 16:36:47 UTC 2017

On 2017-03-06 03:39 AM, Henning Thielemann wrote:
> On Sun, 5 Mar 2017, Vladislav Zavialov wrote:
>> Since 'Data.List.NonEmpty' is now in 'base', it makes sense to change
>> the type of 'some' from
>> some :: Alternative f => f a -> f [a]
>> to
>> some :: Alternative f => f a -> f (NonEmpty a)
>> as it's guaranteed to return a non-empty list.
> A less invasive way would be to add a new function with that type.

If we're adding a new function, it might make more sense to add 
something more generic, like

genericMany, genericSome ::
   (Alternative f, Applicative m, Monoid m) => f a -> f (m a)

The expected type of these operations is usually fixed on the client side.

More information about the Libraries mailing list