8f01cbb
Name: QuickCheck
8f01cbb
Version: 2.12.6.1
8f01cbb
x-revision: 3
8f01cbb
Cabal-Version: >= 1.8
8f01cbb
Build-type: Simple
8f01cbb
License: BSD3
8f01cbb
License-file: LICENSE
8f01cbb
Copyright: 2000-2018 Koen Claessen, 2006-2008 Björn Bringert, 2009-2018 Nick Smallbone
8f01cbb
Author: Koen Claessen <koen@chalmers.se>
8f01cbb
Maintainer: Nick Smallbone <nick@smallbone.se>
8f01cbb
Bug-reports: https://github.com/nick8325/quickcheck/issues
8f01cbb
Tested-with: GHC >= 7.0
8f01cbb
Homepage: https://github.com/nick8325/quickcheck
8f01cbb
Category:       Testing
8f01cbb
Synopsis:       Automatic testing of Haskell programs
8f01cbb
Description:
8f01cbb
  QuickCheck is a library for random testing of program properties.
8f01cbb
  The programmer provides a specification of the program, in the form of
8f01cbb
  properties which functions should satisfy, and QuickCheck then tests that the
8f01cbb
  properties hold in a large number of randomly generated cases.
8f01cbb
  Specifications are expressed in Haskell, using combinators provided by
8f01cbb
  QuickCheck. QuickCheck provides combinators to define properties, observe the
8f01cbb
  distribution of test data, and define test data generators.
8f01cbb
  .
8f01cbb
  Most of QuickCheck's functionality is exported by the main "Test.QuickCheck"
8f01cbb
  module. The main exception is the monadic property testing library in
8f01cbb
  "Test.QuickCheck.Monadic".
8f01cbb
  .
8f01cbb
  If you are new to QuickCheck, you can try looking at the following resources:
8f01cbb
  .
8f01cbb
  * The <http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html official QuickCheck manual>.
8f01cbb
    It's a bit out-of-date in some details and doesn't cover newer QuickCheck features,
8f01cbb
    but is still full of good advice.
8f01cbb
  * <https://begriffs.com/posts/2017-01-14-design-use-quickcheck.html>,
8f01cbb
    a detailed tutorial written by a user of QuickCheck.
8f01cbb
  .
8f01cbb
  The <http://hackage.haskell.org/package/quickcheck-instances quickcheck-instances>
8f01cbb
  companion package provides instances for types in Haskell Platform packages
8f01cbb
  at the cost of additional dependencies.
8f01cbb
8f01cbb
extra-source-files:
8f01cbb
  README
8f01cbb
  changelog
8f01cbb
  examples/Heap.hs
8f01cbb
  examples/Heap_Program.hs
8f01cbb
  examples/Heap_ProgramAlgebraic.hs
8f01cbb
  examples/Lambda.hs
8f01cbb
  examples/Merge.hs
8f01cbb
  examples/Set.hs
8f01cbb
  examples/Simple.hs
8f01cbb
8f01cbb
source-repository head
8f01cbb
  type:     git
8f01cbb
  location: https://github.com/nick8325/quickcheck
8f01cbb
8f01cbb
source-repository this
8f01cbb
  type:     git
8f01cbb
  location: https://github.com/nick8325/quickcheck
8f01cbb
  tag:      2.12.6.1
8f01cbb
8f01cbb
flag templateHaskell
8f01cbb
  Description: Build Test.QuickCheck.All, which uses Template Haskell.
8f01cbb
  Default: True
8f01cbb
8f01cbb
library
8f01cbb
  -- System.Random is explicitly Trustworthy
8f01cbb
  build-depends: random >=1.0.1.0 && <1.2
8f01cbb
8f01cbb
  -- Monad(fail)
8f01cbb
  build-depends: base <4.13
8f01cbb
8f01cbb
  Build-depends: base >=4.3 && <5, random, containers, erf >= 2
8f01cbb
8f01cbb
  -- Modules that are always built.
8f01cbb
  Exposed-Modules:
8f01cbb
    Test.QuickCheck,
8f01cbb
    Test.QuickCheck.Arbitrary,
8f01cbb
    Test.QuickCheck.Gen,
8f01cbb
    Test.QuickCheck.Gen.Unsafe,
8f01cbb
    Test.QuickCheck.Monadic,
8f01cbb
    Test.QuickCheck.Modifiers,
8f01cbb
    Test.QuickCheck.Property,
8f01cbb
    Test.QuickCheck.Test,
8f01cbb
    Test.QuickCheck.Text,
8f01cbb
    Test.QuickCheck.Poly,
8f01cbb
    Test.QuickCheck.State,
8f01cbb
    Test.QuickCheck.Random,
8f01cbb
    Test.QuickCheck.Exception,
8f01cbb
    Test.QuickCheck.Features
8f01cbb
8f01cbb
  -- GHC-specific modules.
8f01cbb
  if impl(ghc)
8f01cbb
    Exposed-Modules: Test.QuickCheck.Function
8f01cbb
    Build-depends: transformers >= 0.3, deepseq >= 1.3.0.0 && < 1.5
8f01cbb
  else
8f01cbb
    cpp-options: -DNO_TRANSFORMERS -DNO_DEEPSEQ
8f01cbb
8f01cbb
  if impl(ghc) && flag(templateHaskell)
8f01cbb
    Build-depends: template-haskell >= 2.4
8f01cbb
    Other-Extensions: TemplateHaskell
8f01cbb
    Exposed-Modules: Test.QuickCheck.All
8f01cbb
  else
8f01cbb
    cpp-options: -DNO_TEMPLATE_HASKELL
8f01cbb
8f01cbb
  if !impl(ghc >= 7.4)
8f01cbb
    cpp-options: -DNO_CTYPES_CONSTRUCTORS -DNO_FOREIGN_C_USECONDS
8f01cbb
8f01cbb
  -- The new generics appeared in GHC 7.2...
8f01cbb
  if impl(ghc < 7.2)
8f01cbb
    cpp-options: -DNO_GENERICS
8f01cbb
  -- ...but in 7.2-7.4 it lives in the ghc-prim package.
8f01cbb
  if impl(ghc >= 7.2) && impl(ghc < 7.6)
8f01cbb
    Build-depends: ghc-prim
8f01cbb
8f01cbb
  -- Safe Haskell appeared in GHC 7.2, but GHC.Generics isn't safe until 7.4.
8f01cbb
  if impl (ghc < 7.4)
8f01cbb
    cpp-options: -DNO_SAFE_HASKELL
8f01cbb
8f01cbb
  -- Use tf-random on newer GHCs.
8f01cbb
  if impl(ghc)
8f01cbb
    Build-depends: tf-random >= 0.4
8f01cbb
  else
8f01cbb
    cpp-options: -DNO_TF_RANDOM
8f01cbb
8f01cbb
  if !impl(ghc >= 7.6)
8f01cbb
      cpp-options: -DNO_POLYKINDS
8f01cbb
8f01cbb
  if !impl(ghc >= 8.0)
8f01cbb
    cpp-options: -DNO_MONADFAIL
8f01cbb
8f01cbb
  -- Switch off most optional features on non-GHC systems.
8f01cbb
  if !impl(ghc)
8f01cbb
    -- If your Haskell compiler can cope without some of these, please
8f01cbb
    -- send a message to the QuickCheck mailing list!
8f01cbb
    cpp-options: -DNO_TIMEOUT -DNO_NEWTYPE_DERIVING -DNO_GENERICS -DNO_TEMPLATE_HASKELL -DNO_SAFE_HASKELL -DNO_TYPEABLE
8f01cbb
    if !impl(hugs) && !impl(uhc)
8f01cbb
      cpp-options: -DNO_ST_MONAD -DNO_MULTI_PARAM_TYPE_CLASSES
8f01cbb
8f01cbb
  -- LANGUAGE pragmas don't have any effect in Hugs.
8f01cbb
  if impl(hugs)
8f01cbb
    Extensions: CPP
8f01cbb
8f01cbb
  if impl(uhc)
8f01cbb
    -- Cabal under UHC needs pointing out all the dependencies of the
8f01cbb
    -- random package.
8f01cbb
    Build-depends: old-time, old-locale
8f01cbb
    -- Plus some bits of the standard library are missing.
8f01cbb
    cpp-options: -DNO_FIXED -DNO_EXCEPTIONS
8f01cbb
8f01cbb
Test-Suite test-quickcheck
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs:
8f01cbb
        examples
8f01cbb
    main-is: Heap.hs
8f01cbb
    build-depends: base, QuickCheck
8f01cbb
    if !flag(templateHaskell)
8f01cbb
        Buildable: False
8f01cbb
8f01cbb
Test-Suite test-quickcheck-gcoarbitrary
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs: tests
8f01cbb
    main-is: GCoArbitraryExample.hs
8f01cbb
    build-depends: base, QuickCheck
8f01cbb
    if !impl(ghc >= 7.2)
8f01cbb
        buildable: False
8f01cbb
    if impl(ghc >= 7.2) && impl(ghc < 7.6)
8f01cbb
        build-depends: ghc-prim
8f01cbb
8f01cbb
Test-Suite test-quickcheck-generators
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs: tests
8f01cbb
    main-is: Generators.hs
8f01cbb
    build-depends: base, QuickCheck
8f01cbb
    if !flag(templateHaskell)
8f01cbb
        Buildable: False
8f01cbb
8f01cbb
Test-Suite test-quickcheck-gshrink
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs: tests
8f01cbb
    main-is: GShrinkExample.hs
8f01cbb
    build-depends: base, QuickCheck
8f01cbb
    if !impl(ghc >= 7.2)
8f01cbb
        buildable: False
8f01cbb
    if impl(ghc >= 7.2) && impl(ghc < 7.6)
8f01cbb
        build-depends: ghc-prim
8f01cbb
8f01cbb
Test-Suite test-quickcheck-terminal
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs: tests
8f01cbb
    main-is: Terminal.hs
8f01cbb
    build-depends: base, process, deepseq >= 1.3.0.0 && < 1.5, QuickCheck
8f01cbb
    if !impl(ghc >= 7.10)
8f01cbb
        buildable: False
8f01cbb
8f01cbb
Test-Suite test-quickcheck-monadfix
8f01cbb
    type: exitcode-stdio-1.0
8f01cbb
    hs-source-dirs: tests
8f01cbb
    main-is: MonadFix.hs
8f01cbb
    build-depends: base, QuickCheck
8f01cbb
    if !impl(ghc >= 7.10)
8f01cbb
        buildable: False