Add general merge functions for maps
authorDavid Feuer <David.Feuer@gmail.com>
Mon, 8 Aug 2016 15:52:23 +0000 (11:52 -0400)
committerDavid Feuer <David.Feuer@gmail.com>
Thu, 25 Aug 2016 18:49:25 +0000 (14:49 -0400)
commit9fc8b45b71879b040cdb101ba4bd1fd923b4ae1a
tree5092ce3e8bc5a905030facc9a5353db9051df7a4
parent51bc08cbcb17faacb5ed687241ab93116ff3b8ad
Add general merge functions for maps

* Add `merge` and `mergeA` for `Data.Map`,
  in the new modules `Data.Map.Lazy.Merge` and
  `Data.Map.Strict.Merge`.

* Expose internal modules per Ed Kmett's request

* Make `difference` for maps and sets conform more closely
  to the algorithm in Blelloch et al so we can rely on their proof.
23 files changed:
Data/IntMap/Base.hs
Data/IntSet/Base.hs
Data/Map.hs
Data/Map/Base.hs
Data/Map/Lazy.hs
Data/Map/Lazy/Merge.hs [new file with mode: 0644]
Data/Map/Strict.hs
Data/Map/Strict/Internal.hs [new file with mode: 0644]
Data/Map/Strict/Merge.hs [new file with mode: 0644]
Data/Sequence.hs
Data/Sequence/Base.hs [new file with mode: 0644]
Data/Set.hs
Data/Set/Base.hs
Data/Utils/BitQueue.hs
Data/Utils/BitUtil.hs
Data/Utils/PtrEquality.hs
Data/Utils/StrictFold.hs
Data/Utils/StrictMaybe.hs
Data/Utils/StrictPair.hs
changelog.md
containers.cabal
tests/map-properties.hs
tests/seq-properties.hs