More Data.Set and Data.Map operations
David Feuer
david.feuer at gmail.com
Sun Aug 7 03:15:09 UTC 2016
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
More information about the Libraries
mailing list