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

Milan Straka fox at
Tue Sep 14 12:32:43 EDT 2010



The following text is the description of ticket 4313:

This proposal depends on #4278 and #4280.

In accordance with a poll on libraries at (see point 3 of I propose to add strict folds to the containers.

The Data.Map is getting left, right and strict folds in #4278. 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

The patches are also attached (including #4280).

More information about the Libraries mailing list