File linear.cabal of Package ghc-linear

name:          linear
category:      Math, Algebra
version:       1.20.6
x-revision: 1
license:       BSD3
cabal-version: >= 1.8
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     provisional
homepage:      http://github.com/ekmett/linear/
bug-reports:   http://github.com/ekmett/linear/issues
copyright:     Copyright (C) 2012-2015 Edward A. Kmett
synopsis:      Linear Algebra
description:   Types and combinators for linear algebra on free vector spaces
build-type:    Custom
tested-with:   GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC==8.0.2, GHC==8.2.1
extra-source-files:
  .gitignore
  .travis.yml
  .vim.custom
  travis/cabal-apt-install
  travis/config
  CHANGELOG.markdown
  README.markdown

flag template-haskell
  description:
    You can disable the use of the `template-haskell` package using `-f-template-haskell`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag herbie
  description: Enable `herbie`.
  default: False
  manual: True

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

custom-setup
  setup-depends:
    base          >= 4 && < 5,
    Cabal,
    cabal-doctest >= 1 && < 1.1

library
  build-depends:
    adjunctions          >= 4     && < 5,
    base                 >= 4.5   && < 5,
    base-orphans         >= 0.5   && < 1,
    binary               >= 0.5   && < 0.9,
    bytes                >= 0.15  && < 1,
    cereal               >= 0.4.1.1 && < 0.6,
    containers           >= 0.4   && < 0.6,
    deepseq              >= 1.1   && < 1.5,
    distributive         >= 0.2.2 && < 1,
    ghc-prim,
    hashable             >= 1.1   && < 1.3,
    lens                 >= 4     && < 5,
    reflection           >= 1.3.2 && < 3,
    semigroups           >= 0.9   && < 1,
    semigroupoids        >= 3     && < 5.2.1,
    tagged               >= 0.4.4 && < 1,
    transformers         >= 0.2   && < 0.6,
    transformers-compat  >= 0.4   && < 1,
    unordered-containers >= 0.2.3 && < 0.3,
    vector               >= 0.10  && < 0.13,
    void                 >= 0.6   && < 1

  if flag(template-haskell) && impl(ghc)
    build-depends: template-haskell >= 2.7 && < 3.0

  if flag(herbie)
    build-depends: HerbiePlugin >= 0.1 && < 0.2
    ghc-options: -fplugin=Herbie
    cpp-options: -DHERBIE

  exposed-modules:
    Linear
    Linear.Affine
    Linear.Algebra
    Linear.Binary
    Linear.Conjugate
    Linear.Covector
    Linear.Epsilon
    Linear.Instances
    Linear.Matrix
    Linear.Metric
    Linear.Plucker
    Linear.Plucker.Coincides
    Linear.Projection
    Linear.Quaternion
    Linear.Trace
    Linear.V
    Linear.V0
    Linear.V1
    Linear.V2
    Linear.V3
    Linear.V4
    Linear.Vector

  ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields
  hs-source-dirs: src

  -- hack around the buggy unused matches check for class associated types in ghc 8 rc1
  if impl(ghc >= 8)
    ghc-options: -fno-warn-unused-matches

-- Verify the results of the examples
test-suite doctests
  type:           exitcode-stdio-1.0
  main-is:        doctests.hs
  ghc-options:    -Wall -threaded
  hs-source-dirs: tests
  build-depends:
    base,
    doctest        >= 0.11.1 && < 0.12,
    lens,
    simple-reflect >= 0.3.1

test-suite UnitTests
  type:           exitcode-stdio-1.0
  main-is:        UnitTests.hs
  other-modules:  Plucker, Binary
  if impl(ghc >= 7.7)
    other-modules: V
  ghc-options:    -Wall -threaded
  hs-source-dirs: tests
  build-depends:
    base,
    binary,
    bytestring,
    deepseq,
    test-framework >= 0.8,
    test-framework-hunit >= 0.3,
    HUnit >= 1.2.5,
    linear,
    reflection,
    vector

openSUSE Build Service is sponsored by