Skip to content

add a Location interface for element-wise operations on Data.Map

This is a variant of a suggestion by apfelmus:

http://www.haskell.org/pipermail/libraries/2010-September/014510.html

To avoid proliferation of variants of element-wise operations, the idea is to split these operations into two phases mediated by a new Location type, so that users can do whatever they like between these phases. Documentation is here:

http://code.haskell.org/~ross/containers_doc/Data-Map.html#3

This adds a type and 9 functions to the interface, but makes possible monadic updates and much more. As an illustration, the file MapOps.hs attached to the ticket gives definitions of 30 of the public functions of Data.Map in terms of the new interface. ~~At least in the case of insert, this definition is slightly faster than the current one.~~

Discussion period: 4 weeks (to 4 February)

Edited by Ross Paterson
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information