You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've just finished going through all of the open issues and pull requests and I've noticed a bunch of them are of the form "Consider adding x to the Y api", and the discussion usually ends with, "I like this idea, but this is a somewhat special and the api is already huge, so probably not."
See below for a list of open issues that request that things be added to containers. Many of these are reasonable requests and things that not everyone should need to write themselves, but also don't quite belong in the core containers API. By creating an official containers-extra package we can provide the "extra" API functions to reduce code duplication in other libraries, (potentially) user more efficient implementations using the Internals, and use it as a test bed to see which operations are widely used to give us data for what should be included in the core api.
I don't think it would be bad to have such a package, but I have very little sense of what would go in it. Some things above are now in containers, some should probably be added, some are kind of bad ideas (IMO) and some might go well in an extras package.
Background
I've just finished going through all of the open issues and pull requests and I've noticed a bunch of them are of the form "Consider adding x to the Y api", and the discussion usually ends with, "I like this idea, but this is a somewhat special and the api is already huge, so probably not."
See below for a list of open issues that request that things be added to containers. Many of these are reasonable requests and things that not everyone should need to write themselves, but also don't quite belong in the core
containers
API. By creating an officialcontainers-extra
package we can provide the "extra" API functions to reduce code duplication in other libraries, (potentially) user more efficient implementations using theInternal
s, and use it as a test bed to see which operations are widely used to give us data for what should be included in the core api.Open API Requests
mapMaybe :: Ord b => (a -> Maybe b) -> Set a -> Set b
catMaybes :: Ord a => Set (Maybe a) -> Set a
catMaybes
fromFoldable :: (Ord k, Foldable f) => (a -> (k,v)) -> f a -> Map k v
alterF
already added, no real desire for the otherssplitAtR :: Int -> Seq a -> (Seq a, Seq a)
takeR :: Int -> Seq a -> Seq a
drop :: Int -> Seq a -> Seq a
differenceSet :: Ord k => Map k a -> Set k -> Map k a
fromListWithDefault :: Ord k => b -> (a -> b -> b) -> [(k, a)] -> Map k b
filterM :: Applicative f => (a -> f Bool) -> Seq a -> f (Seq a)
toSet :: Map k v -> Set (k, v)
unionIntersection :: (Ord a) => Set a -> Set a -> (Set a, Set a)
unionsWithKey :: Ord k => (k -> a -> a -> a) -> [Map k a] -> Map k a
Add foldMapWithIndex and traverseWithIndex (Add foldMapWithIndex and traverseWithIndex #89)Consider adding fromFunction to Data.IntMap (Consider adding fromFunction to Data.IntMap #96)fromFunction :: Int -> Int -> (Int -> a) -> IntMap a
traverseWithKey :: Applicative t => (k -> a -> t b) -> Map k a -> t (Map k b)
already exists, what would the type oftraverseWithKey_
be?ordNub :: Ord a => [a] -> [a]
(usesSet
under the hood)intersections :: NonEmpty (IntMap a) -> IntMap a
intersectionsWith :: (a -> a -> a) -> NonEmpty (IntMap a) -> IntMap a
The text was updated successfully, but these errors were encountered: