Fast hashing of Haskell values. The hash functions used are Bob
Jenkins's public domain functions, which combine high performance
with excellent mixing properties. For more details, see
http://burtleburtle.net/bob/hash/.

In addition to the usual one input, one output hash functions,
this module provides multi-output hash functions, suitable for use
in applications that need multiple hashes, such as Bloom filtering.

Where Kirsch and Mitzenmacher multiply the second hash by a
coefficient, we shift right by the coefficient. This offers better
performance (as a shift is much cheaper than a multiply), and the
low order bits of the final hash stay well mixed.