Bump version and relax deepseq dependency
Mark Data.Map.(!) as INLINABLE instead of INLINE.

This should have been done in commit 3f798e33. As mentioned in the
commit log, the chain
  m ! k = find k m
  {-# INLINE (!) #-}
  find k m = ...
  {-# INLINABLE find #-}
results in find not being specialized at the call site of (!).
Small benchmark changes.

* Uncomment all working benchmarks.

* Use whnf instead of nf, as all containers are spine and key strict.

* Overhaul Makefile.
Add Makefile for manually building tests.
Add traverseWithKey to Map and IntMap API

Proposal reviewed and approved by the libraries list.
Particular thanks goes to Thomas Schilling for his suggestions
regarding how the function should be documented.
Merge pull request #10 from batterseapower/master

Add traverseWithKey to Map and IntMap API
Add IntMap.mergeWithKey.

The slightly more general internal function mergeWithKey' is used to
define both mergeWithKey and other combining functions union*,
difference*, intersection*.

The resulting implementations of union*, difference* and intersection*
are no slower than before, and up to 30% faster in case of two large
interleaved maps. Measured by benchmarks/SetOperations-IntMap.hs.
Scripts for comparing csv results of benchmarks.
Benchmark of set operations -- union, difference, intersection.
Improve IntSet.{union, difference, intersection}.

Incorporate improvements achieved in IntMap implementation by using
mergeWithKey' -- i.e., reorder and modify pattern matches of combining
functions, to play nicely with pattern match compiler. Also improve
the ``Tip vs Bin'' case handling.
Merge branch 'master' of github.com:haskell/containers
Add forgotten GHC >= 7.0 condition in (!).

The INLINABLE pragma works only for GHC >= 7.0 and generates
warning for older compilers.
Improve programming documentation.

Move important programming comments to the beginning of the source file,
give them names and refer to the from the source code where necessarry.
Reorder the data constructors of Map and Set.

The order of constructors has clearly no effect on corectness.

Inspired by the change in order of constructors of IntMap and IntSet,
the benchmark shows slight improvement when changing the data
constructors from Tip | Bin to Bin | Tip.

Also, we now consistently use the same order of constructors in all
these structures: Map, Set, IntMap, IntSet.
Improve query functions of IntMap and IntSet.

As documented in the Note: Local 'go' functions and capturing,
it is safe to use captured key argument in query functions.

Also, in order to decrease allocation, the query functions in IntMap
are manually inlined, so 'member' does not have to call 'lookup'
and heap-allocate 'Just a'.

Tests of query functions are much improved too.
Inline Int{Map,Set}.{null, empty, singleton}.

These are probably inlined anyway, but we explicitly INLINE
them in Map and Set, so we do also in IntMap and IntSet for consistency.
Add empty line between Notes.
Prevent multiple warnings.

Prevent multiple warnings caused by unsuccessful SpecConstr pass.
We do so by not inlining helper testing function.
Insert missing space in an error message.
Improve query functions of Map and Set.

As documented in the Note: Local 'go' functions and capturing,
it is safe to use captured key argument in query functions.

Also, in order to decrease allocation, the query functions in Map
are manually inlined, so 'member' does not have to call 'lookup'
and heap-allocate 'Just a'.

Tests of query functions are much improved too.