
On Thu, Aug 19, 2010 at 3:41 AM, wren ng thornton < wren@community.haskell.org> wrote:
Johan Tibell wrote:
I've created a proposal to add a strict left fold, see separate email. In the process of doing so I've discovered that the whole foo/fooWithKey duplication is unnecessary, at least from a performance perspective. [...]
It's probably not feasible to remove the duplication from e.g. the Data.Map API, but it's worth keeping in mind when designing data structure APIs in the future.
For something like Data.Map, the API is definitely redundant (though we may wish to keep the simplified versions around in Data.Map.Convenience or the like). And even though Data.IntMap is technically a trie, it'd probably be fine without them too--- since the keys are of fixed size, and can be combined with bit twiddling instead of rearranging memory.
The keys are actually stored in the leaves in the IntMap keys so what I said about Map applies to IntMap as well. -- Johan