name:                generic-arbitrary
version:             1.0.0
x-revision: 1
synopsis:            Generic implementation for QuickCheck's Arbitrary
description:
    Generic implementations of methods of the 'Arbitrary' class from the
    QuickCheck library. The approach taken here can lead to diverging instances
    for mutually recursive types but is safe for simply recursive ones and guarantees
    flat distribution for constructors of sum-types.

license:             MIT
license-file:        LICENSE
author:              Typeable.io contributors
maintainer:          makeit@typeable.io
homepage:            http://github.com/typeable/generic-arbitrary#readme
category:            Generic
build-type:          Simple
extra-source-files:  CHANGELOG.md
                   , README.md
cabal-version:       1.22
tested-with:         GHC == 8.10.7
                   , GHC == 9.0.2

source-repository head
  type:     git
  location: https://github.com/typeable/generic-arbitrary.git

library
  exposed-modules:     Test.QuickCheck.Arbitrary.Generic
  build-depends:       base >=4.8 && <4.22
                     , QuickCheck >=2.8 && <4.16
  hs-source-dirs:      src
  default-language:    Haskell2010
  default-extensions: AllowAmbiguousTypes
                    , CPP
                    , ConstraintKinds
                    , DataKinds
                    , DeriveGeneric
                    , FlexibleContexts
                    , FlexibleInstances
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , MultiParamTypeClasses
                    , PolyKinds
                    , RankNTypes
                    , ScopedTypeVariables
                    , TypeFamilies
                    , TypeOperators
                    , TypeSynonymInstances
                    , UndecidableInstances
                    , ViewPatterns


test-suite test
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Test.hs
  default-language: Haskell2010
  build-depends:    base >=4.12 && <4.16
                  , QuickCheck >=2.10
                  , deepseq
                  , generic-arbitrary
                  , tasty <=1.6
                  , tasty-discover >=2.0.0 && <5.1
                  , tasty-hunit >=0.9.2 && <0.11
                  , tasty-quickcheck <0.10.3
  other-modules: Auxiliary
               , LimitationDemo
               , NoTypecheckTest
               , ParametersTest
               , RecursiveTest
  default-extensions: AllowAmbiguousTypes
                    , CPP
                    , DataKinds
                    , DeriveAnyClass
                    , DeriveGeneric
                    , DerivingStrategies
                    , DerivingVia
                    , FlexibleContexts
                    , FlexibleInstances
                    , GeneralizedNewtypeDeriving
                    , LambdaCase
                    , MultiParamTypeClasses
                    , PolyKinds
                    , RankNTypes
                    , ScopedTypeVariables
                    , TypeApplications
                    , TypeFamilies
                    , TypeOperators
                    , TypeSynonymInstances
                    , UndecidableInstances
                    , ViewPatterns
  build-tools:   tasty-discover
  ghc-options:      -Wall
                    -threaded
                    -rtsopts
                    "-with-rtsopts=-N -A64m -qb0 -n4m -T -I1"
  default-extensions: DeriveGeneric