cabal-version: 3.0 name: yaya-quickcheck version: 0.2.0.1 synopsis: QuickCheck testing support for the Yaya recursion scheme library. description: If you use Yaya in your own code and have tests written using QuickCheck, then this library will help you with generating trees, verifying type class instances, etc. author: Greg Pfeil maintainer: Greg Pfeil copyright: 2017 Greg Pfeil homepage: https://github.com/sellout/yaya#readme bug-reports: https://github.com/sellout/yaya/issues category: Recursion build-type: Custom license: AGPL-3.0-or-later license-files: LICENSE tested-with: GHC == { -- GHCup Nixpkgs 8.6.1, 8.8.1, 8.8.4, 8.10.1, 9.0.1, 9.2.1, 9.4.1, 9.4.8, 9.6.1, 9.8.1 } source-repository head type: git location: https://github.com/sellout/yaya -- This mimics the GHC2021 extension -- (https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html?highlight=doandifthenelse#extension-GHC2021), -- but supporting compilers back to GHC 7.10. If the oldest supported compiler -- is GHC 9.2, then this stanza can be removed and `import: GHC2021` can be -- replaced by `default-language: GHC2021`. common GHC2021 default-language: Haskell2010 default-extensions: BangPatterns BinaryLiterals ConstraintKinds DeriveDataTypeable DeriveGeneric -- DeriveLift -- uncomment if the oldest supported version is GHC 8.10.1+ DeriveTraversable DerivingStrategies DoAndIfThenElse EmptyCase ExistentialQuantification FlexibleContexts FlexibleInstances GADTSyntax GeneralizedNewtypeDeriving HexFloatLiterals -- ImportQualifiedPost -- uncomment if the oldest supported version is GHC 8.10.1+ InstanceSigs LambdaCase MagicHash MonadComprehensions MonomorphismRestriction MultiParamTypeClasses NamedFieldPuns NamedWildCards NumericUnderscores PolyKinds PostfixOperators RankNTypes ScopedTypeVariables StandaloneDeriving -- StandaloneKindSignatures -- uncomment if the oldest supported version is GHC 8.10.1+ TupleSections TypeApplications TypeOperators UnicodeSyntax NoExplicitNamespaces common defaults import: GHC2021 build-depends: base ^>= {4.12.0, 4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0}, ghc-options: -Weverything -- Type inference good. -Wno-missing-local-signatures -- Warns even when `Unsafe` is explicit, not inferred. See -- https://gitlab.haskell.org/ghc/ghc/-/issues/16689 -Wno-unsafe -- TODO: prune these warnings -Wno-all-missed-specialisations -fpackage-trust -trust base if impl(ghc < 8.8.1) ghc-options: -- This used to warn even when `Safe` was explicit. -Wno-safe if impl(ghc >= 8.10.1) ghc-options: -- If we didn’t allow inferred-safe imports, nothing would be `Safe`. -Wno-inferred-safe-imports -- We support GHC versions without qualified-post. -Wno-prepositive-qualified-module -- `-trust` triggers this warning when applied to transitive dependencies. -Wno-unused-packages if impl(ghc >= 9.2.1) ghc-options: -- We support GHC versions without kind signatures. -Wno-missing-kind-signatures if impl(ghc >= 9.8.1) ghc-options: -- We support GHC versions without kind signatures. -Wno-missing-poly-kind-signatures -- Inference good. -Wno-missing-role-annotations default-extensions: DefaultSignatures ExplicitNamespaces FunctionalDependencies LiberalTypeSynonyms -- replace with `LexicalNegation` if the oldest supported version is GHC 9.0.1+ NegativeLiterals PackageImports ParallelListComp -- QualifiedDo - uncomment if the oldest supported version is GHC 9.0.1+ RecursiveDo -- RequiredTypeArguments - uncomment if the oldest supported version is GHC 9.10.1+ RoleAnnotations StrictData TemplateHaskellQuotes TransformListComp NoGeneralizedNewtypeDeriving NoImplicitPrelude NoMonomorphismRestriction NoPatternGuards NoTypeApplications custom-setup setup-depends: -- TODO: Remove `Cabal` dep once haskell/cabal#3751 is fixed. Cabal ^>= {3.0.0, 3.2.0, 3.4.0, 3.6.0, 3.8.0, 3.10.0}, base ^>= {4.12.0, 4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0}, cabal-doctest ^>= {1.0.0}, library import: defaults hs-source-dirs: src exposed-modules: Yaya.QuickCheck.Fold build-depends: QuickCheck ^>= {2.10, 2.13.2, 2.14.2}, yaya ^>= {0.5.1, 0.6.0}, -- NB: splitmix is a transitive dependency … if we select QuickCheck >= -- 2.13. However, `-trust` only works for packages in the dependency -- graph, so we make it explicit here for the times that it doesn’t get -- included transitively. splitmix ^>= {0.0.1, 0.1.0}, ghc-options: -trust QuickCheck -trust adjunctions -trust array -trust base-orphans -trust binary -trust bytestring -trust containers -trust distributive -trust exceptions -trust foldable1-classes-compat -trust ghc-prim -trust hashable -trust profunctors -trust random -trust semigroupoids -trust splitmix -trust stm -trust text -trust transformers-compat test-suite doctests import: defaults type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: doctests.hs build-depends: doctest ^>= {0.16.0, 0.18.1, 0.20.1, 0.21.1, 0.22.2}, yaya-quickcheck, -- TODO: The sections below here are necessary because we don’t have control -- over the generated `Build_doctests.hs` file. So we have to silence -- all of its warnings one way or another. ghc-options: -Wno-missing-export-lists -Wno-missing-import-lists -Wno-safe if impl(ghc >= 8.8.1) ghc-options: -- This used to warn even when `Safe` was explicit. -Wno-missing-deriving-strategies default-extensions: -- Since we can’t add `{-# LANGUAGE Safe -#}` to the generated -- “Build_doctests.hs”, we set it here, and that means it has to match -- doctests.hs, which is `Unsafe`. Unsafe