cabal-version: 3.0 name: yaya version: 0.6.2.0 synopsis: Total recursion schemes. description: Recursion schemes allow you to separate recursion from your business logic – making your own operations simpler, more modular, and less error-prone. This library also provides tools for combining your operations in ways that reduce the number of passes over your data and is designed to encourage total (i.e., successfully terminating) functions. 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 extra-source-files: CHANGELOG.md README.md 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.Applied Yaya.Experimental.Foldable Yaya.Fold Yaya.Fold.Common Yaya.Fold.Native Yaya.Functor Yaya.Pattern Yaya.Retrofit Yaya.Zoo other-modules: Yaya.Fold.Native.Internal build-depends: comonad ^>= 5.0.7, either ^>= 5, free ^>= {5.1.5, 5.2}, kan-extensions ^>= 5.2, -- `Control.Lens` in lens < 5 is `Unsafe` lens ^>= {5, 5.1, 5.2}, profunctors ^>= {5.5.2, 5.6}, -- strict < 0.4 doesn’t export various combinators strict ^>= {0.4, 0.5}, template-haskell ^>= {2.14.0, 2.15.0, 2.16.0, 2.17.0, 2.18.0, 2.19.0, 2.20.0, 2.21.0}, -- th-abstraction < 0.3 has different field names th-abstraction ^>= {0.4.1, 0.6.0}, transformers ^>= {0.5.5, 0.6.1}, -- NB: foldable-classes-compat is a transitive dependency … depending on -- which version of other dependencies (specifically, -- indexed-traversable) we select. 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. foldable1-classes-compat ^>= {0.1}, ghc-options: -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 lens -trust profunctors -trust semigroupoids -trust stm -trust template-haskell -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, -- 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