More Data.Set and Data.Map operations

David Feuer david.feuer at gmail.com
Sun Aug 7 05:35:40 UTC 2016


mergeWithKey is a rather difficult bit of API from a user perspective. I
wish it didn't exist. I'm not looking to remove it, but I don't think its
availability is a great argument against something more user-friendly.

On Aug 7, 2016 12:33 AM, "Oleg Grenrus" <oleg.grenrus at iki.fi> wrote:

> -1 on unionWithMapping/Key. There is already mergeWithKey (and there’s
> pull request to `these` to use it, I’d just hadn’t time to look it thru
> properly and apply).
>
> - Oleg Grenrus (co-maintainer of these)
>
> > On 07 Aug 2016, at 06:15, David Feuer <david.feuer at gmail.com> wrote:
> >
> > Cale Gibbard and Ryan Trinkle are interested in adding some more
> > operations they say will be useful in their work. Note that
> > unionWithMapping is intended to enable an efficient implementation of
> > alignWith in Data.Align in the `these` package.
> >
> > Set:
> >
> > filterIncreasing :: Ord a => (a -> Bool) -> Set a -> Set a
> > filterDecreasing :: Ord a => (a -> Bool) -> Set a -> Set a
> > partitionIncreasing :: Ord a => (a -> Bool) -> Set a -> (Set a, Set a)
> >
> > Map:
> >
> > filterKeysIncreasing :: Ord k => (k -> Bool) -> Map k a -> Map k a
> > filterKeysDecreasing :: Ord k => (k -> Bool) -> Map k a -> Map k a
> > partitionKeysIncreasing :: Ord k => (k -> Bool) -> Map k a -> (Map k a,
> Map k a)
> >
> > traverseMaybe :: Applicative f => (a -> f (Maybe b)) -> Map k a -> f
> (Map k b)
> >
> > alterMany :: Ord k => (a -> Maybe b -> Maybe b) -> Map k a -> Map k b ->
> Map k b
> >
> > alterManyA :: (Applicative f, Ord k) => (a -> Maybe b -> f (Maybe b))
> > -> Map k a -> Map k b -> f (Map k b)
> >
> > unionWithMapping :: Ord k => (a -> c) -> (b -> c) -> (a -> b -> c) ->
> > Map k a -> Map k b -> Map k c
> >
> > unionWithKeyMapping :: Ord k => (k -> a -> c) -> (k -> b -> c) -> (k
> > -> a -> b -> c)
> > -> Map k a -> Map k b -> Map k c
> > _______________________________________________
> > 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/20160807/8a272a04/attachment.html>


More information about the Libraries mailing list