Changelog for containers-0.5.7.1
Changelog for containers
package
0.5.7.1 Dec 2015
-
Planned to bundle with GHC 8.0.1.
-
Add
IsString
instance toData.Sequence
. -
Define
Semigroup
instances for ``Data.Map,
Data.Set,
Data.IntMap,
Data.IntSetand
Data.Sequence`.
0.5.6.2 Dec 2014
-
Bundled with GHC 7.10.1.
-
Add role annotations for
Data.Map
andData.Set
. -
Add
IsList
instances forData.Map
,Data.Set
,Data.IntMap
andData.IntSet
. -
Several performance improvements for
Data.Sequence
. -
Add
Data.Sequence.fromFunction
andData.Sequence.fromArray
.
0.5.4.0 Jan 2014
-
Bundled with GHC 7.8.1.
-
The
Data.Map.fromList
andData.Set.fromList
now use linear-time algorithm if the input is sorted, without need to callfromDistinctAscList
. -
Implement indexing operations (
lookupIndex
,findIndex
,elemAt
,deletaAt
) forData.Set
too. -
Add
Applicative
andAlternative
instances forData.Sequence
. -
Add
foldMapWithKey
toData.Map
andData.IntMap
. -
Implement poly-kinded
Typeable
. -
Add
Functor
instance forData.Graph.SCC
. -
Add
Data.Map.splitRoot
andData.Set.splitRoot
.
0.5.0.0 May 2012
-
Bundled with GHC 7.6.1.
-
Major improvements since last release:
- a clearer distinction between value-lazy and value-strict containers,
- performance improvements across the board,
- a big internal clean-up, and
- new functions for e.g. merging, updating, and searching containers.
-
While the old
Data.Map
andData.IntMap
modules will continue to exist for the foreseeable future, we've abandoned the practice of having the strict and lazy versions of each function distinguished by an apostrophe. The distinction is instead made at the module level, by introducing four new modules:- Data.Map.Strict
- Data.Map.Lazy
- Data.IntMap.Strict
- Data.IntMap.Lazy
This split has three benefits:
- It makes the choice between value-strict and value-lazy containers more declarative; you pick once at import time, instead of having to remember to use the strict or lazy versions of a function every time you modify the container.
- It alleviates a common source of performance issues, by forcing the user to think about the strictness properties upfront. For example, using insertWith instead of insertWith' is a common source of containers-related performance bugs.
- There are fewer functions per module, making it easier to get an overview of each module.
-
Note that the types used in the strict and lazy APIs are the same, so you can still use the same container in a "mixed" manner, if needed.
-
The
Data.IntSet
representation changed to store small sets using bits in anWord
. Larger sets are stored as a collection of such dense small sets, connected together by a prefix trie.
0.4.2.1 Feb 2012
-
Bundled with GHC 7.4.1.
-
Data.Map now exports
foldr,
foldr',
foldland
foldl'`. -
Data.Set now exports
foldr,
foldr',
foldland
foldl'`. -
Data.IntMap now exports
foldr,
foldr',
foldl,
foldl',
foldrWithKey,
foldrWithKey',
foldlWithKeyand
foldlWithKey'`. -
Data.IntSet now exports
foldr,
foldr',
foldland
foldl'`. -
Data.Map.foldWithKey
is no longer deprecated, although it is expected to be deprecated again in the future. -
There are now
NFData
instance forData.Map.Map
,Data.Set.Set
,Data.IntMap.IntMap
,Data.IntSet.IntSet
andData.Tree.Tree
.
0.4.1.0 Aug 2011
-
Bundled with GHC 7.2.1.
-
Data.Map
now exports new functionsfoldrWithKey'
andfoldlWithKey'
, which are strict variants offoldrWithKey
andfoldlWithKey
respectively. -
Data.IntMap
now exports new functionsinsertWith'
andinsertWithKey'
, which are strict variants ofinsertWith
andinsertWithKey
respectively.
0.4.0.0 Nov 2010
-
Bundled with GHC 7.0.1.
-
Strictness is now more consistent, with containers being strict in their elements even in singleton cases.
-
There is a new function
insertLookupWithKey'
inData.Map
. -
The
foldWithKey
function inData.Map
has been deprecated in favour offoldrWithKey
.
0.3.0.0 Dec 2009
-
Bundled with GHC 6.12.1.
-
mapAccumRWithKey
has been added toData.IntMap
. -
A
Traversable
instance has been added toData.IntMap.IntMap
. -
The types of
Data.IntMap.intersectionWith
andData.IntMap.intersectionWithKey
have been changed fromintersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
intersectionWithKey :: (Key -> a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
tointersectionWith :: (a -> b -> c) -> IntMap a -> IntMap b -> IntMap c
intersectionWithKey :: (Key -> a -> b -> c) -> IntMap a -> IntMap b -> IntMap c
-
The types of
Data.IntMap.findMin
andData.IntMap.findMax
have been changed fromfindMin :: IntMap a -> a
findMax :: IntMap a -> a
tofindMin :: IntMap a -> (Int,a)
findMax :: IntMap a -> (Int,a)
-
Data.Map
now exportsmapAccumRWithKey
,foldrWithKey
,foldlWithKey
andtoDescList
. -
Data.Sequence
now exportsreplicate
,replicateA
,replicateM
,iterateN
,unfoldr
,unfoldl
,scanl
,scanl1
,scanr
,scanr1
,tails
,inits
,takeWhileL
,takeWhileR
,dropWhileL
,dropWhileR
,spanl
,spanr
,breakl
,breakr
,partition
,filter
,sort
,sortBy
,unstableSort
,unstableSortBy
,elemIndexL
,elemIndicesL
,elemIndexR
,elemIndicesR
,findIndexL
,findIndicesL
,findIndexR
,findIndicesR
,foldlWithIndex
,foldrWithIndex
,mapWithIndex
,zip
,zipWith
,zip3
,zipWith3
,zip4
andzipWith4
.
0.2.0.0 Nov 2008
-
Bundled with GHC 6.10.1.
-
Various result type now use
Maybe
rather than allowing anyMonad
.
0.1.0.0 Nov 2007
-
Bundled with GHC 6.8.1.
-
Initial split off from GHC base.