cabal-version:       2.2
name:                chad-fast
synopsis:            Fast CHAD
version:             0.1.0.0
license:             BSD-3-Clause
license-file:        LICENSE
author:              Tom Smeding
maintainer:          tom@tomsmeding.com
build-type:          Simple

library
  exposed-modules:
    Array
    AST
    AST.Bindings
    AST.Count
    AST.Env
    AST.Pretty
    AST.Types
    AST.UnMonoid
    AST.Weaken
    AST.Weaken.Auto
    CHAD
    CHAD.Accum
    CHAD.EnvDescr
    CHAD.Top
    CHAD.Types
    Compile
    -- CompileCu
    Data
    Example
    Example.Format
    Example.GMM
    Example.Types
    ForwardAD
    ForwardAD.DualNumbers
    ForwardAD.DualNumbers.Types
    Interpreter
    -- Interpreter.AccumOld
    Interpreter.Rep
    Language
    Language.AST
    Lemmas
    -- PreludeCu
    Simplify
  other-modules:
  build-depends:
    base >= 4.19 && < 4.21,
    containers,
    deepseq,
    -- template-haskell,
    process,
    transformers,
    vector,
  hs-source-dirs: src
  default-language: Haskell2010
  ghc-options: -Wall

test-suite example
  type: exitcode-stdio-1.0
  main-is: Main.hs
  build-depends: base, chad-fast
  hs-source-dirs: example
  default-language: Haskell2010
  ghc-options: -Wall -threaded

test-suite test
  type: exitcode-stdio-1.0
  main-is: Main.hs
  build-depends:
    chad-fast,
    base,
    containers,
    dependent-map,
    hedgehog,
    transformers,
  hs-source-dirs: test
  default-language: Haskell2010
  ghc-options: -Wall -threaded -rtsopts

benchmark bench
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
  build-depends:
    chad-fast,
    base,
    criterion,
    deepseq,
  hs-source-dirs: bench
  default-language: Haskell2010
  ghc-options: -Wall -threaded