containers 0.5.9.1

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 0.5.8.1 (2016-08-31)

The headline change is adding merge and mergeA for Data.IntMap . The versions for Data.Map were introduced in 0.5.8.1, 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 .

: , , , , , , , , , , and . 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.)

) for , , , , and . (Thanks to Oleg Grenrus for doing a lot of this work.) Properly deprecate functions in Data.IntMap long documented as deprecated.

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.

and more eager, improving performance. Plug space leaks in Data.Map.Lazy.fromAscList and Data.Map.Lazy.fromDescList by manually inlining constant functions.

and by manually inlining constant functions. Add lookupMin and lookupMax to Data.Set and Data.Map as total alternatives to findMin and findMax .

and to and as total alternatives to and . Add (!?) to Data.Map as a total alternative to (!) .

to 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