ANN containers

wren romano winterkoninkje at
Sun Jan 8 21:14:12 UTC 2017

-- containers

The containers package contains efficient general-purpose
implementations of various basic immutable container types.  The
declared cost of each operation is either worst-case or amortized, but
remains valid even if structures are shared.

-- Changes since (2016-08-31)

The headline change is adding `merge` and `mergeA` for `Data.IntMap`.
The versions for `Data.Map` were introduced in, so this change
restores parity between the interfaces. With this in place we hope
this version will make it into GHC 8.2.

Other changes include:

* Add instances for `Data.Graph.SCC`: `Foldable`, `Traversable`,
`Data`, `Generic`, `Generic1`, `Eq`, `Eq1`, `Show`, `Show1`, `Read`,
and `Read1`.

* Add lifted instances (from `Data.Functor.Classes`) for
`Data.Sequence`, `Data.Map`, `Data.Set`, `Data.IntMap`, and
`Data.Tree`. (Thanks to Oleg Grenrus for doing a lot of this work.)

* Properly deprecate functions in `Data.IntMap` long documented as deprecated.

* Rename several internal modules for clarity. Thanks to esoeylemez
for starting this process.

* Make `Data.Map.fromDistinctAscList` and
`Data.Map.fromDistinctDescList` more eager, improving performance.

* Plug space leaks in `Data.Map.Lazy.fromAscList` and
`Data.Map.Lazy.fromDescList` by manually inlining constant functions.

* Add `lookupMin` and `lookupMax` to `Data.Set` and `Data.Map` as
total alternatives to `findMin` and `findMax`.

* Add `!?` to `Data.Map` as a total alternative to `!`.

* Avoid using `deleteFindMin` and `deleteFindMax` internally,
preferring total functions instead. New implementations of said
functions lead to slight performance improvements overall.

-- Links



Live well,

More information about the Libraries mailing list