packages feed

discrimination-0.5: discrimination.cabal

name:          discrimination
category:      Data, Sorting
version:       0.5
license:       BSD3
cabal-version: >= 1.10
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     experimental
homepage:      http://github.com/ekmett/discrimination/
bug-reports:   http://github.com/ekmett/discrimination/issues
copyright:     Copyright (C) 2014-2015 Edward A. Kmett
build-type:    Simple
tested-with:   GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.3, GHC == 9.4.1
synopsis:      Fast generic linear-time sorting, joins and container construction.
description:
  This package provides fast, generic, linear-time discrimination and sorting.
  .
  The techniques applied are based on <http://www.diku.dk/hjemmesider/ansatte/henglein/papers/henglein2011a.pdf multiple> <http://www.diku.dk/hjemmesider/ansatte/henglein/papers/henglein2011c.pdf papers> and <https://www.youtube.com/watch?v=sz9ZlZIRDAg talks> by <http://www.diku.dk/hjemmesider/ansatte/henglein/ Fritz Henglein>.

extra-source-files:
  .gitignore
  README.markdown
  CHANGELOG.markdown

source-repository head
  type: git
  location: git://github.com/ekmett/discrimination.git

library
  default-language: Haskell2010
  ghc-options: -Wall -O2
  hs-source-dirs: src

  exposed-modules:
    Data.Discrimination
    Data.Discrimination.Class
    Data.Discrimination.Grouping
    Data.Discrimination.Internal
    Data.Discrimination.Internal.SmallArray
    Data.Discrimination.Internal.WordMap
    Data.Discrimination.Sorting

  build-depends:
    array         >= 0.5.1.0 && < 0.6,
    base          >= 4.9     && < 5,
    containers    >= 0.5.6.2 && < 0.7,
    contravariant >= 1.5.3   && < 2,
    deepseq       >= 1.4.1.1 && < 1.5,
    ghc-prim,
    hashable      >= 1.2.7.0 && < 1.5,
    primitive     >= 0.7.1.0 && < 0.8,
    promises      >= 0.3     && < 0.4,
    transformers  >= 0.4.2.0 && < 0.7

  if !impl(ghc >=8.0)
    build-depends: semigroups >= 0.18.5 && < 1

  if impl(ghc >= 9.0)
    build-depends: ghc-bignum >= 1.0 && < 1.3
  else
    build-depends: integer-gmp >= 1.0 && < 1.1

test-suite properties
  type:             exitcode-stdio-1.0
  main-is:          tests.hs
  other-modules:    Utils
  ghc-options:      -Wall -O2 -threaded
  hs-source-dirs:   test common
  default-language: Haskell2010
  build-depends:
    base >= 4.8,
    containers,
    criterion,
    deepseq,
    discrimination,
    hashable,
    QuickCheck >=2.14.2,
    quickcheck-instances,
    splitmix >=0.1 && <0.2,
    tasty,
    tasty-quickcheck,
    unordered-containers,
    vector,
    vector-algorithms

  if !impl(ghc >=8.0)
    build-depends: semigroups

benchmark wordmap
  type:             exitcode-stdio-1.0
  main-is:          wordmap.hs
  ghc-options:      -Wall -O2 -threaded
  hs-source-dirs:   benchmarks
  default-language: Haskell2010
  build-depends:
    base >= 4.8,
    containers,
    criterion,
    deepseq,
    discrimination,
    ghc-prim,
    unordered-containers,
    primitive

benchmark examples
  type:             exitcode-stdio-1.0
  main-is:          examples.hs
  other-modules:    Utils
  ghc-options:      -Wall -O2 -threaded
  hs-source-dirs:   benchmarks common
  default-language: Haskell2010
  build-depends:
    base >= 4.8,
    containers,
    criterion,
    deepseq,
    discrimination,
    hashable,
    splitmix >=0.1 && <0.2,
    unordered-containers,
    vector,
    vector-algorithms