
7 Mar
2017
7 Mar
'17
12:09 p.m.
On 2017-03-07 11:40 AM, Henning Thielemann wrote:
On Tue, 7 Mar 2017, Mario Blažević wrote:
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.
I think it must be Monoid (m a). But it won't work, because NonEmpty is no Monoid because there is no mempty.
You're correct on both counts, sorry about that. It would have to be genericMany, genericSome :: (Alternative f, Applicative m, Semigroup (m a)) => f a -> f (m a) once Semigroup is in base.