Applicative-based definitions in Data.Foldable

David Feuer david.feuer at gmail.com
Fri Dec 21 02:57:45 UTC 2018


Can you give a few examples of where you'd want that? I can't think of a
good application off the top of my head.

On Thu, Dec 20, 2018 at 8:22 PM Isaac Elliott <isaace71295 at gmail.com> wrote:

> With the introduction of the 'Ap' monoid in base-4.13, it seems like
> Applicative based definitions for common folds would be appropriate in base.
>
> For example:
>
>> allA :: (Applicative f, Foldable t) => (a -> f Bool) -> t a -> f Bool
>> allA f = fmap getAll . getAp . foldMap (Ap . fmap All . f)
>>
>
>
>> all :: Foldable t => (a -> Bool) -> t a -> Bool
>> all f = runIdentity . allA (Identity . f)
>
>
> I've personally written the Applicative version in everyday code. Thoughts?
>
> Isaac
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20181220/24805318/attachment.html>


More information about the Libraries mailing list