cabal-version:      2.2
name:               quickcheck-dynamic
version:            4.0.0
license:            Apache-2.0
license-files:
  LICENSE
  NOTICE

maintainer:         sebastian.nagel@iohk.io
author:             Ulf Norell
category:           Testing
synopsis:           A library for stateful property-based testing
homepage:
  https://github.com/input-output-hk/quickcheck-dynamic#readme

bug-reports:
  https://github.com/input-output-hk/quickcheck-dynamic/issues

description:
  Please see the README on GitHub at <https://github.com/input-output-hk/quickcheck-dynamic#readme>

build-type:         Simple
extra-doc-files:    README.md
extra-source-files: CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/input-output-hk/quickcheck-dynamic

common lang
  default-language:   Haskell2010
  default-extensions:
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingVia
    FlexibleContexts
    FlexibleInstances
    GADTs
    GeneralizedNewtypeDeriving
    ImportQualifiedPost
    LambdaCase
    MultiParamTypeClasses
    MultiWayIf
    PatternSynonyms
    QuantifiedConstraints
    RankNTypes
    ScopedTypeVariables
    StandaloneDeriving
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    ViewPatterns

  ghc-options:
    -Wall -Wnoncanonical-monad-instances -Wunused-packages
    -Wincomplete-uni-patterns -Wincomplete-record-updates
    -Wredundant-constraints -Widentities -Wno-unused-do-bind

library
  import:          lang
  hs-source-dirs:  src
  exposed-modules:
    Test.QuickCheck.DynamicLogic
    Test.QuickCheck.DynamicLogic.CanGenerate
    Test.QuickCheck.DynamicLogic.Internal
    Test.QuickCheck.DynamicLogic.Quantify
    Test.QuickCheck.DynamicLogic.SmartShrinking
    Test.QuickCheck.DynamicLogic.Utils
    Test.QuickCheck.Extras
    Test.QuickCheck.StateModel
    Test.QuickCheck.StateModel.Variables

  build-depends:
    , base        >=4.7 && <5
    , containers
    , mtl
    , QuickCheck
    , random

test-suite quickcheck-dynamic-test
  import:         lang
  type:           exitcode-stdio-1.0
  main-is:        Spec.hs
  hs-source-dirs: test
  other-modules:
    Spec.DynamicLogic.Counters
    Spec.DynamicLogic.Registry
    Spec.DynamicLogic.RegistryModel
    Test.QuickCheck.DynamicLogic.QuantifySpec
    Test.QuickCheck.StateModelSpec

  ghc-options:    -rtsopts
  build-depends:
    , base
    , containers
    , mtl
    , QuickCheck
    , quickcheck-dynamic
    , stm
    , tasty
    , tasty-hunit
    , tasty-quickcheck