packages feed

ralist-0.2.1.0: ralist.cabal

Name:           ralist
Cabal-Version:  >= 1.20
Version:        0.2.1.0
License:        BSD3
Author:         Lennart Augustsson, Carter Schonwald
Maintainer:     Carter Schonwald
Category:       Data Structures
Synopsis:       Random access list with a list compatible interface.
Stability:      experimental
Build-type:     Simple
Description:    Random access list with a list compatible interface.
                Random access list have same complexity as lists with some exceptions,
                the notable one being that (!!) is O(log n) instead of O(n).
                RALists have to be finite.
-- URL for the project homepage or repository.
homepage:            http://github.com/cartazio/ralist

extra-source-files:   changelog.md
                      LICENSE

source-repository head
  type: git
  location: https://github.com/cartazio/ralist.git


-- You can disable the hunit test suite with -f-test-hunit
flag test-hspec
  default: True
  manual: True

Library
  Build-Depends: base >= 3 && < 6
  Exposed-modules:      Data.RAList
  ghc-options: -Wall -O2
  default-language: Haskell2010
  -- Build-depends: semigroups == 0.18.*
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
  else
    -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
    build-depends: fail == 4.9.*, semigroups == 0.18.*

test-suite hspec
  type: exitcode-stdio-1.0

  main-is: hspec.hs
  default-language: Haskell2010
  ghc-options: -w -threaded -rtsopts -with-rtsopts=-N
  hs-source-dirs: tests

  if !flag(test-hspec)
    buildable: False
  else
    build-depends:
      base,
      ralist,
      hspec >= 2.2 && < 2.3


benchmark benchmarking
  type: exitcode-stdio-1.0
  main-is: benchmarking.hs
  default-language: Haskell2010
  hs-source-dirs: benchmark
  ghc-options: -O2

  build-depends:
      base,
      ralist,
      criterion,
      deepseq