name:                identifiers
version:             0.4.0.0
synopsis:            Numeric identifiers for values.
description:         Useful for situations where repeated-storage requirements
                     of values become too costly.
license:             BSD3
license-file:        LICENSE
author:              Adam Wagner
maintainer:          awagner83@gmail.com
category:            Data
build-type:          Simple
cabal-version:       >=1.10

source-repository head
  type:                git
  location:            https://github.com/awagner83/identifiers.git

library
  exposed-modules:     Data.Identifiers.Hashable Data.Identifiers.ListLike
  other-modules:       Data.TrieMap
  build-depends:       base >=4.6 && <4.8,
                       binary ==0.7.*,
                       cereal <0.5,
                       containers ==0.5.*,
                       deepseq ==1.3.*,
                       hashable ==1.2.*,
                       ListLike <4.1,
                       text <1.2,
                       unordered-containers ==0.2.3.*
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall -O2 -funbox-strict-fields

benchmark identifiers-hashable
  type:                exitcode-stdio-1.0
  hs-source-dirs:      bench
  main-is:             IdentifiersHashable.hs
  build-depends:       base >=4.6 && <4.8,
                       criterion,
                       binary ==0.7.*,
                       cereal <0.5,
                       deepseq ==1.3.*,
                       text <1.2,
                       bytestring ==0.10.*,
                       identifiers
  default-language:    Haskell2010
  ghc-options:         -Wall -rtsopts -with-rtsopts=-t

benchmark identifiers-listlike
  type:                exitcode-stdio-1.0
  hs-source-dirs:      bench
  main-is:             IdentifiersListLike.hs
  build-depends:       base >=4.6 && <4.8,
                       criterion,
                       binary ==0.7.*,
                       cereal <0.5,
                       deepseq ==1.3.*,
                       text <1.2,
                       bytestring ==0.10.*,
                       identifiers
  default-language:    Haskell2010
  ghc-options:         -Wall -rtsopts -with-rtsopts=-t -O2 -funbox-strict-fields

test-suite main
  type:                exitcode-stdio-1.0
  main-is:             TestAll.hs
  ghc-options:         -Wall
  build-depends:       base >=4.6 && <4.8,
                       identifiers,
                       QuickCheck ==2.6.*,
                       test-framework ==0.8.*,
                       test-framework-quickcheck2 ==0.3.0.*
  default-language:    Haskell2010
  hs-source-dirs:      test
  ghc-options:         -Wall