packages feed

rbst-0.0.0.0: rbst.cabal

cabal-version:       >= 1.10

name:                rbst
version:             0.0.0.0
build-type:          Simple
license:             MIT
license-file:        LICENSE
author:              Arnau Abella
maintainer:          arnauabella@gmail.com
copyright:           2020 Arnau Abella
homepage:            https://github.com/monadplus/rbst
bug-reports:         https://github.com/monadplus/rbst/issues
synopsis:            Randomized Binary Search Trees
description:
    .
    This package contains an implementation of a [Randomized
    Binary Search Tree](http://akira.ruc.dk/~keld/teaching/algoritmedesign_f08/Artikler/03/Martinez97.pdf).
    .
    Randomized Binary Search Trees are guaranteed to be /Random BST/ irrespective of the number
    of @'insert'@ \/ @'delete'@ operations. This guarantees logarithmic time operations (with a constant factor) in the worst case.
category:            Data Structures
extra-source-files:  README.md
                     CHANGELOG.md
tested-with:         GHC == 8.8.3

source-repository head
  type:                git
  location:            https://github.com/monadplus/rbst.git

Library
  default-language:   Haskell2010
  hs-source-dirs:     src

  exposed-modules:    RBST
                        RBST.Pretty

  other-modules:      RBST.Internal

  build-depends:      base                    >=4.12     && <4.14,
                      bytestring              >=0.10.8.2 && <0.11.0.0,
                      containers              >=0.5.0.1  && <0.7,
                      deepseq                 >=1.4      && <1.5,
                      mersenne-random-pure64  >=0.2.2.0  && <0.3,
                      text                    >=1.2.3.0  && <2.0.0.0,
                      transformers            >=0.5.0.0  && <0.6.0.0

  ghc-options:        -Wall
                      -Wincomplete-uni-patterns
                      -Wincomplete-record-updates
                      -Wcompat
                      -Widentities
                      -Wredundant-constraints
                      -Wpartial-fields
                      -fhide-source-paths
                      -freverse-errors
  if impl(ghc >= 8.8.1)
    ghc-options:      -Wmissing-deriving-strategies
                      -Werror=missing-deriving-strategies

  default-extensions: AllowAmbiguousTypes
                      BangPatterns
                      ConstraintKinds
                      DataKinds
                      DefaultSignatures
                      DeriveAnyClass
                      DeriveDataTypeable
                      DeriveFoldable
                      DeriveFunctor
                      DeriveGeneric
                      DeriveTraversable
                      DerivingStrategies
                      DerivingVia
                      DuplicateRecordFields
                      EmptyCase
                      EmptyDataDecls
                      FlexibleContexts
                      FlexibleInstances
                      FunctionalDependencies
                      GADTs
                      GeneralizedNewtypeDeriving
                      InstanceSigs
                      KindSignatures
                      LambdaCase
                      NamedFieldPuns
                      OverloadedLists
                      OverloadedStrings
                      PolyKinds
                      QuasiQuotes
                      RankNTypes
                      RecordWildCards
                      ScopedTypeVariables
                      StandaloneDeriving
                      TemplateHaskell
                      TupleSections
                      TypeApplications
                      TypeFamilies
                      TypeOperators
                      UndecidableInstances
                      RoleAnnotations

Test-suite rbst-tests
  default-language:     Haskell2010
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       test
  main-is:              Spec.hs
  other-modules:        Test.Common
                         Test.RBST.CutsSpec
                         Test.RBST.LawsSpec
                         Test.RBST.QuerySpec
                         Test.RBST.SetOpsSpec
                         Test.RBST.UpdateSpec

  build-depends:        rbst,
                        base               >=4.12     && <4.14,
                        hspec              >=2.6.0    && <2.8,
                        hspec-expectations >=0.8.0    && <0.9,
                        hspec-core         >=2.6.0    && <2.8,
                        QuickCheck         >=2.12     && <2.14

  ghc-options:          -Wall
                        -Wincomplete-uni-patterns
                        -Wincomplete-record-updates
                        -Wcompat
                        -Widentities
                        -Wredundant-constraints
                        -Wpartial-fields
                        -fhide-source-paths
                        -freverse-errors
  if impl(ghc >= 8.8.1)
    ghc-options:        -Wmissing-deriving-strategies
                        -Werror=missing-deriving-strategies

  default-extensions:   AllowAmbiguousTypes
                        BangPatterns
                        ConstraintKinds
                        DataKinds
                        DefaultSignatures
                        DeriveAnyClass
                        DeriveDataTypeable
                        DeriveFoldable
                        DeriveFunctor
                        DeriveGeneric
                        DeriveTraversable
                        DerivingStrategies
                        DerivingVia
                        DuplicateRecordFields
                        EmptyCase
                        EmptyDataDecls
                        FlexibleContexts
                        FlexibleInstances
                        FunctionalDependencies
                        GADTs
                        GeneralizedNewtypeDeriving
                        InstanceSigs
                        KindSignatures
                        LambdaCase
                        NamedFieldPuns
                        OverloadedLists
                        OverloadedStrings
                        PolyKinds
                        QuasiQuotes
                        RankNTypes
                        RecordWildCards
                        ScopedTypeVariables
                        StandaloneDeriving
                        TemplateHaskell
                        TupleSections
                        TypeApplications
                        TypeFamilies
                        TypeOperators
                        UndecidableInstances
                        RoleAnnotations


Test-suite rbst-doctest
  default-language:    Haskell2010
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Doctest.hs

  build-depends:       base     >=4.12 && <4.14,
                       doctest  >=0.16 && <0.17,
                       Glob     >=0.9  && <0.11

  ghc-options:         -Wall
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -Wpartial-fields
                       -fhide-source-paths
                       -freverse-errors

                       -threaded
  if impl(ghc >= 8.8.1)
    ghc-options:       -Wmissing-deriving-strategies
                       -Werror=missing-deriving-strategies



Benchmark rbst-bench
  default-language: Haskell2010
  type:           exitcode-stdio-1.0
  hs-source-dirs: benchmark
  main-is:        Benchmark.hs

  build-depends:  rbst,
                  base       >=4.12     &&  <4.14,
                  gauge      >=0.2.4    &&  <0.3,
                  mwc-random >= 0.14.0  &&  <0.15

  ghc-options:    -Wall
                  -Wincomplete-uni-patterns
                  -Wincomplete-record-updates
                  -Wcompat
                  -Widentities
                  -Wredundant-constraints
                  -Wpartial-fields
                  -fhide-source-paths
                  -freverse-errors

                  -O2
                  -threaded
                  -rtsopts
                  -with-rtsopts=-N
  if impl(ghc >= 8.8.1)
    ghc-options:  -Wmissing-deriving-strategies
                  -Werror=missing-deriving-strategies