cabal-version:      2.4
name:               contiguous
version:            0.6.4.2
homepage:           https://github.com/byteverse/contiguous
bug-reports:        https://github.com/byteverse/contiguous/issues
author:             Andrew Martin
maintainer:         amartin@layer3com.com
copyright:          2018 Andrew Martin
license:            BSD-3-Clause
license-file:       LICENSE
build-type:         Simple
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files: cabal.project
synopsis:           Unified interface for primitive arrays
category:           Array,Data,Primitive
description:
  This package provides a typeclass `Contiguous` that offers a
  unified interface to working with `Array`, `SmallArray`,
  `PrimArray`, and `UnliftedArray`.

common build-settings
  default-language: Haskell2010
  ghc-options:      -Wall -Wunused-packages

library
  import:          build-settings
  exposed-modules:
    Data.Primitive.Contiguous
    Data.Primitive.Contiguous.Class

  other-modules:   Data.Primitive.Contiguous.Shim
  hs-source-dirs:  src
  build-depends:
    , base                >=4.14    && <5
    , deepseq             >=1.4
    , primitive           >=0.7.2   && <0.10
    , primitive-unlifted  >=2.1
    , run-st              >=0.1.3.2

  ghc-options:     -O2

test-suite unit-tests
  import:         build-settings
  type:           exitcode-stdio-1.0
  main-is:        UnitTests.hs
  hs-source-dirs: test
  build-depends:
    , base
    , contiguous
    , primitive
    , QuickCheck
    , quickcheck-instances
    , vector

test-suite laws
  import:         build-settings
  type:           exitcode-stdio-1.0
  main-is:        Laws.hs
  hs-source-dirs: test
  build-depends:
    , base
    , contiguous
    , QuickCheck
    , quickcheck-classes

  ghc-options:    -O2

benchmark weigh
  import:         build-settings
  type:           exitcode-stdio-1.0
  build-depends:
    , base
    , contiguous
    , random
    , random-shuffle
    , weigh

  hs-source-dirs: bench
  main-is:        Main.hs
  ghc-options:    -O2

source-repository head
  type:     git
  location: git://github.com/byteverse/contiguous.git