An approximate streaming (constant space) unique object counter http://github.com/analytics/hyperloglog

Version on this page:
LTS Haskell 16.4:0.4.3
Stackage Nightly 2020-07-04:0.4.3
Latest on Hackage:0.4.3

See all snapshots hyperloglog appears in

BSD-3-Clause licensed by Edward A. Kmett
Maintained by Edward A. Kmett

Module documentation for

This version can be pinned in stack with:[email protected]:bd8e1477c31858506c80a3d5182345599d15c393798c12c8a6050b0650760f5a,3133


Hackage Build Status

This package provides a working implementation of HyperLogLog.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.

-Edward Kmett


  • Support cereal 0.5 and safecopy 0.9.

  • Fixed doctest issues caused by vector 0.11
  • Unfortunately the herbie changes turned out to be flawed (due to issue mikeizbicki/HerbiePlugin#8). Rolling them back for now.

  • Fixed a haddock issue caused by the comments in the herbie code.

  • Added vector 0.11 support.
  • Incorporated some changes suggested by the HerbiePlugin.


  • Support generic-deriving 1.8. We no longer incur a generic-deriving requirement at all except on GHC < 7.6.

  • Support reflection 2


  • Added bytes and binary instances.
  • Compiles warning-free on GHC 7.10.


  • Simplified reifyConfig internals.


  • Added insertHash. This enables users of the 0.2 era version of hyperloglog to manually pick the hash used and load their old data.
  • Builds warning-free on GHC 7.10

  • Constraint bumps for lens and generic-deriving


  • Switched to SipHash, so the package actually works.

  • More #ifdef bugfixes

  • #ifdef bugfix


  • GHC 7.8 compatibility
  • Bumped cereal dependency.


  • Exported insert from Data.HyperLogLog.


  • Made compatible with lens 4


  • Ported Data.Analytics.Approximate.HyperLogLog from analytics into a separate package.