The discrimination package

[Tags:benchmark, bsd3, library]

This package provides fast, generic, linear-time discrimination and sorting.

The techniques applied are based on multiple papers and talks by Fritz Henglein.

[Skip to Readme]


Versions 0, 0.1, 0.2.1
Change log CHANGELOG.markdown
Dependencies array (==0.5.*), base (>=4.7 && <5), containers (>=0.4 && <0.6), contravariant (>=1.3.1 && <2), deepseq (>=1.3 && <1.5), ghc-prim, hashable (==1.2.*), primitive (==0.6.*), profunctors (==5.*), promises (>=0.2 && <0.4), semigroups (>=0.16.2 && <1), transformers (>=0.2 && <0.6), transformers-compat (>=0.3 && <1), vector (>=0.10 && <0.12), void (>=0.5 && <1) [details]
License BSD3
Copyright Copyright (C) 2014-2015 Edward A. Kmett
Author Edward A. Kmett
Maintainer Edward A. Kmett <>
Category Data, Sorting
Home page
Bug tracker
Source repository head: git clone git://
Uploaded Sun Jan 17 05:38:23 UTC 2016 by EdwardKmett
Updated Sun Jan 17 15:13:51 UTC 2016 by EdwardKmett to revision 1
Distributions NixOS:0.2.1
Downloads 456 total (32 in the last 30 days)
2 []
Status Docs available [build log]
Last success reported on 2016-01-19 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for discrimination

Readme for discrimination-0.2.1


Hackage Build Status

This package provides linear time sorting, partitioning, and joins for a wide array of Haskell data types. This work is based on a "final encoding" of the ideas presented in multiple papers and talks by Fritz Henglein.

By adopting a final encoding we can enjoy many instances for standard classes, lawfully, without quotienting.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on

-Edward Kmett