Skip to content

Proposal: Add left, right and strict folds to Data.Set, Data.IntMap and Data.IntSet to mimic Data.Map.

This proposal depends on #4278 (closed) and #4280 (closed).

In accordance with a poll on libraries@haskell.org (see point 3 of http://article.gmane.org/gmane.comp.lang.haskell.libraries/13273) I propose to add strict folds to the containers.

The Data.Map is getting left, right and strict folds in #4278 (closed). This proposal adds left, right and strict folds for Set, !IntMap and !IntSet.

The naming is a bit tricky. The folds in !IntMap mimics Map (ie. foldrWithKey, foldlWithKey, foldlWithKey'; fold and foldWithKey are deprecated in favor of foldrWithKey). The folds in Set and !IntSet are classic (foldr, foldl, foldl'; the old fold is deprecated in favor of foldr).

The repository of the containers package with these patches (and also several others) is at http://fox.auryn.cz/darcs/containers/.

The patches are also attached (including #4280 (closed)).

Trac metadata
Trac field Value
Version 6.12.3
Type Task
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component libraries (other)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information