packages feed

yaya-hedgehog 0.3.0.2 → 0.3.0.3

raw patch · 5 files changed

+281/−93 lines, 5 filesdep ~basesetup-changed

Dependency ranges changed: base

Files

CHANGELOG.md view
@@ -1,72 +1,84 @@ # Changelog -This file documents all notable changes to this package.+All notable changes to this project will be documented in this file. -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),+The format is based on [Keep a Changelog 1.1](https://keepachangelog.com/en/1.1.0/), and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). -## 0.2.1.3 – 2024–03–11+## [0.3.0.3] - 2024-08-26  ### Added +- support for GHC 9.10++## [0.3.0.2] -++## [0.3.0.1] -++## [0.3.0.0] -++## [0.2.1.3] – 2024–03–11++### Added+ - The tests for `yaya` were previously in their own `yaya-test` package, but that has been folded into this package. Ideally, the tests would live in the `yaya` package, but Cabal doesn’t play well with circular dependencies between packages (even if the component dependencies aren’t circular). -## 0.2.1.2+## [0.2.1.2] -  Unknown changes. -## 0.2.1.1+## [0.2.1.1] -  Unknown changes. -## 0.2.1.0+## [0.2.1.0] -  Unknown changes. -## 0.2.0.2 – 2023–12–21+## [0.2.0.2] – 2023–12–21  ### Changed  - updated formatting for newer Ormolu -## 0.2.0.1 – 2020–05–18+## [0.2.0.1] – 2020–05–18  ### Changed  - Turned on StrictData -## 0.2.0.0 – 2020–05–14+## [0.2.0.0] – 2020–05–14  ### Changed  - updated in sync with polykind changes in yaya-0.3.0.0 -## 0.1.2.2 – 2020–05–14+## [0.1.2.2] – 2020–05–14  ### Changed  - enabled and fixed warnings -## 0.1.2.1 – 2019–11–08+## [0.1.2.1] – 2019–11–08  ### Changed  - improved documentation -## 0.1.2.0 – 2019–11–08+## [0.1.2.0] – 2019–11–08  ### Added  - `law_cataCompose` -## 0.1.1.0 – 2019–01–08+## [0.1.1.0] – 2019–01–08  ### Added  - `law_anaRefl` as dual to `law_cataRefl` - lower bounds on internal yaya dependencies -## 0.1.0.0 – 2019–01–04+## [0.1.0.0] – 2019–01–04  ### Added 
README.md view
@@ -1,5 +1,94 @@ # Yaya-Hedgehog +[![Packaging status](https://repology.org/badge/tiny-repos/haskell:yaya-hedgehog.svg)](https://repology.org/project/haskell:yaya-hedgehog/versions)+[![latest packaged versions](https://repology.org/badge/latest-versions/haskell:yaya-hedgehog.svg)](https://repology.org/project/haskell:yaya-hedgehog/versions)+ A support library for testing Yaya-using code with [Hedgehog](https://github.com/hedgehogqa/haskell-hedgehog).  This includes various generators for trees, laws that instances of Yaya type classes must follow, etc.++## versioning++This project largely follows the [Haskell Package Versioning Policy](https://pvp.haskell.org/) (PVP), but is more strict in some ways.++The version always has four components, `A.B.C.D`. The first three correspond to those required by PVP, while the fourth matches the “patch” component from [Semantic Versioning](https://semver.org/).++Here is a breakdown of some of the constraints:++### sensitivity to additions to the API++PVP recommends that clients follow [these import guidelines](https://wiki.haskell.org/Import_modules_properly) in order that they may be considered insensitive to additions to the API. However, this isn’t sufficient. We expect clients to follow these additional recommendations for API insensitivity++If you don’t follow these recommendations (in addition to the ones made by PVP), you should ensure your dependencies don’t allow a range of `C` values. That is, your dependencies should look like++```cabal+yaya >=1.2.3 && <1.2.4+```++rather than++```cabal+yaya >=1.2.3 && <1.3+```++#### use package-qualified imports everywhere++If your imports are [package-qualified](https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html?highlight=packageimports#extension-PackageImports), then a dependency adding new modules can’t cause a conflict with modules you already import.++#### avoid orphans++Because of the transitivity of instances, orphans make you sensitive to your dependencies’ instances. If you have an orphan instance, you are sensitive to the APIs of the packages that define the class and the types of the instance.++One way to minimize this sensitivity is to have a separate package (or packages) dedicated to any orphans you have. Those packages can be sensitive to their dependencies’ APIs, while the primary package remains insensitive, relying on the tighter ranges of the orphan packages to constrain the solver.++### transitively breaking changes (increments `A`)++#### removing a type class instance++Type class instances are imported transitively, and thus changing them can impact packages that only have your package as a transitive dependency.++#### widening a dependency range with new major versions++This is a consequence of instances being transitively imported. A new major version of a dependency can remove instances, and that can break downstream clients that unwittingly depended on those instances.++A library _may_ declare that it always bumps the `A` component when it removes an instance (as this policy dictates). In that case, only `A` widenings need to induce `A` bumps. `B` widenings can be `D` bumps like other widenings, Alternatively, one may compare the APIs when widening a dependency range, and if no instances have been removed, make it a `D` bump.++### breaking changes (increments `B`)++#### restricting an existing dependency’s version range in any way++Consumers have to contend not only with our version bounds, but also with those of other libraries. It’s possible that some dependency overlapped in a very narrow way, and even just restricting a particular patch version of a dependency could make it impossible to find a dependency solution.++#### restricting the license in any way++Making a license more restrictive may prevent clients from being able to continue using the package.++#### adding a dependency++A new dependency may make it impossible to find a solution in the face of other packages dependency ranges.++### non-breaking changes (increments `C`)++#### adding a module++This is also what PVP recommends. However, unlike in PVP, this is because we recommend that package-qualified imports be used on all imports.++### other changes (increments `D`)++#### widening a dependency range for non-major versions++This is fairly uncommon, in the face of `^>=`-style ranges, but it can happen in a few situations.++#### deprecation++**NB**: This case is _weaker_ than PVP, which indicates that packages should bump their major version when adding `deprecation` pragmas.++We disagree with this because packages shouldn’t be _publishing_ with `-Werror`. The intent of deprecation is to indicate that some API _will_ change. To make that signal a major change itself defeats the purpose. You want people to start seeing that warning as soon as possible. The major change occurs when you actually remove the old API.++Yes, in development, `-Werror` is often (and should be) used. However, that just helps developers be aware of deprecations more immediately. They can always add `-Wwarn=deprecation` in some scope if they need to avoid updating it for the time being.++## licensing++This package is licensed under [The GNU AGPL 3.0 or later](./LICENSE). If you need a license for usage that isn’t covered under the AGPL, please contact [Greg Pfeil](mailto:greg@technomadic.org?subject=licensing%20yaya).++You should review the [license report](docs/license-report.md) for details about dependency licenses.
Setup.hs view
@@ -1,12 +1,17 @@--- __NB__: `custom-setup` doesn’t have any way to specify extensions, so any we---         want need to be specified here.+-- __NB__: `custom-setup` doesn’t have any way to specify extensions or options,+--         so any we want need to be specified here.+{-# LANGUAGE CPP #-} {-# LANGUAGE PackageImports #-} {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude #-}+#if MIN_VERSION_GLASGOW_HASKELL(8, 0, 0, 0) {-# OPTIONS_GHC -Weverything #-} -- Warns even when `Unsafe` is explicit, not inferred. See -- https://gitlab.haskell.org/ghc/ghc/-/issues/16689 {-# OPTIONS_GHC -Wno-unsafe #-}+#else+{-# OPTIONS_GHC -Wall #-}+#endif  module Main (main) where 
+ docs/license-report.md view
@@ -0,0 +1,98 @@+**NB**: This captures the licenses associated with a particular set of dependency versions. If your own build solves differently, it’s possible that the licenses may have changed, or even that the set of dependencies itself is different. Please make sure you run [`cabal-plan license-report`](https://hackage.haskell.org/package/cabal-plan) on your own components rather than assuming this is authoritative.++# Dependency License Report++Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-9.10.1`.++## Direct dependencies of `yaya-hedgehog:lib:yaya-hedgehog`++| Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Also depended upon by |+| --- | --- | --- | --- | --- |+| **`base`** | [`4.20.0.0`](http://hackage.haskell.org/package/base-4.20.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/base-4.20.0.0/src/LICENSE) | Core data structures and operations | *(core library)* |+| `deriving-compat` | [`0.6.6`](http://hackage.haskell.org/package/deriving-compat-0.6.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deriving-compat-0.6.6/src/LICENSE) | Backports of GHC deriving extensions |  |+| `hedgehog` | [`1.4`](http://hackage.haskell.org/package/hedgehog-1.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hedgehog-1.4/src/LICENSE) | Release with confidence. |  |+| `yaya` | [`0.6.2.2`](http://hackage.haskell.org/package/yaya-0.6.2.2) |  *MISSING* | *MISSING* |  |++## Indirect transitive dependencies++| Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Depended upon by |+| --- | --- | --- | --- | --- |+| `OneTuple` | [`0.4.2`](http://hackage.haskell.org/package/OneTuple-0.4.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/OneTuple-0.4.2/src/LICENSE) | Singleton Tuple | `indexed-traversable-instances` |+| `StateVar` | [`1.2.2`](http://hackage.haskell.org/package/StateVar-1.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/StateVar-1.2.2/src/LICENSE) | State variables | `contravariant`, `invariant` |+| `adjunctions` | [`4.4.2`](http://hackage.haskell.org/package/adjunctions-4.4.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/adjunctions-4.4.2/src/LICENSE) | Adjunctions and representable functors | `kan-extensions` |+| `ansi-terminal` | [`1.1.1`](http://hackage.haskell.org/package/ansi-terminal-1.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-1.1.1/src/LICENSE) | Simple ANSI terminal support | `concurrent-output`, `hedgehog` |+| `ansi-terminal-types` | [`1.1`](http://hackage.haskell.org/package/ansi-terminal-types-1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-types-1.1/src/LICENSE) | Types and functions used to represent SGR aspects | `ansi-terminal` |+| **`array`** | [`0.5.7.0`](http://hackage.haskell.org/package/array-0.5.7.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/array-0.5.7.0/src/LICENSE) | Mutable and immutable arrays | `adjunctions`, `binary`, `containers`, `deepseq`, `indexed-traversable`, `invariant`, `kan-extensions`, `lens`, `parallel`, `pretty-show`, `stm`, `text` |+| `assoc` | [`1.1.1`](http://hackage.haskell.org/package/assoc-1.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/assoc-1.1.1/src/LICENSE) | swap and assoc: Symmetric and Semigroupy Bifunctors | `bifunctors`, `lens`, `strict`, `these` |+| `async` | [`2.2.5`](http://hackage.haskell.org/package/async-2.2.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/async-2.2.5/src/LICENSE) | Run IO operations asynchronously and wait for their results | `concurrent-output`, `hedgehog`, `lifted-async` |+| `barbies` | [`2.1.1.0`](http://hackage.haskell.org/package/barbies-2.1.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/barbies-2.1.1.0/src/LICENSE) | Classes for working with types that can change clothes. | `hedgehog` |+| `base-orphans` | [`0.9.2`](http://hackage.haskell.org/package/base-orphans-0.9.2) | [`MIT`](http://hackage.haskell.org/package/base-orphans-0.9.2/src/LICENSE) | Backwards-compatible orphan instances for base | `distributive`, `lens`, `profunctors`, `semigroupoids`, `transformers-base` |+| `bifunctors` | [`5.6.2`](http://hackage.haskell.org/package/bifunctors-5.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bifunctors-5.6.2/src/LICENSE) | Bifunctors | `either`, `invariant`, `lens`, `profunctors`, `semigroupoids` |+| **`binary`** | [`0.8.9.2`](http://hackage.haskell.org/package/binary-0.8.9.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/binary-0.8.9.2/src/LICENSE) | Binary serialisation for Haskell values using lazy ByteStrings | `constraints`, `strict`, `text`, `these` |+| `boring` | [`0.2.2`](http://hackage.haskell.org/package/boring-0.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/boring-0.2.2/src/LICENSE) | Boring and Absurd types | `constraints` |+| **`bytestring`** | [`0.12.1.0`](http://hackage.haskell.org/package/bytestring-0.12.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bytestring-0.12.1.0/src/LICENSE) | Fast, compact, strict and lazy byte strings with a list interface | `binary`, `filepath`, `hashable`, `hedgehog`, `lens`, `os-string`, `random`, `strict`, `text`, `unix` |+| `call-stack` | [`0.4.0`](http://hackage.haskell.org/package/call-stack-0.4.0) | [`MIT`](http://hackage.haskell.org/package/call-stack-0.4.0/src/LICENSE) | Use GHC call-stacks in a backward compatible way | `lens` |+| `colour` | [`2.3.6`](http://hackage.haskell.org/package/colour-2.3.6) | [`MIT`](http://hackage.haskell.org/package/colour-2.3.6/src/LICENSE) | A model for human colour/color perception | `ansi-terminal`, `ansi-terminal-types` |+| `comonad` | [`5.0.8`](http://hackage.haskell.org/package/comonad-5.0.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/comonad-5.0.8/src/LICENSE) | Comonads | `adjunctions`, `bifunctors`, `free`, `invariant`, `kan-extensions`, `lens`, `profunctors`, `semigroupoids`, `yaya` |+| `concurrent-output` | [`1.10.21`](http://hackage.haskell.org/package/concurrent-output-1.10.21) | [`BSD-2-Clause`](http://hackage.haskell.org/package/concurrent-output-1.10.21/src/LICENSE) | Ungarble output from several threads or commands | `hedgehog` |+| `constraints` | [`0.14.2`](http://hackage.haskell.org/package/constraints-0.14.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/constraints-0.14.2/src/LICENSE) | Constraint manipulation | `lifted-async` |+| **`containers`** | [`0.7`](http://hackage.haskell.org/package/containers-0.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/containers-0.7/src/LICENSE) | Assorted concrete container types | `adjunctions`, `bifunctors`, `binary`, `comonad`, `deriving-compat`, `free`, `hashable`, `hedgehog`, `indexed-traversable`, `invariant`, `kan-extensions`, `lens`, `parallel`, `resourcet`, `semigroupoids`, `th-abstraction`, `wl-pprint-annotated` |+| `contravariant` | [`1.5.5`](http://hackage.haskell.org/package/contravariant-1.5.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/contravariant-1.5.5/src/LICENSE) | Contravariant functors | `adjunctions`, `invariant`, `kan-extensions`, `lens`, `profunctors`, `semigroupoids` |+| **`deepseq`** | [`1.5.0.0`](http://hackage.haskell.org/package/deepseq-1.5.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deepseq-1.5.0.0/src/LICENSE) | Deep evaluation of data structures | `bytestring`, `constraints`, `containers`, `filepath`, `hashable`, `hedgehog`, `os-string`, `parallel`, `pretty`, `primitive`, `process`, `random`, `safe-exceptions`, `splitmix`, `strict`, `tagged`, `text`, `these`, `time`, `unordered-containers`, `vector`, `wl-pprint-annotated` |+| **`directory`** | [`1.3.8.3`](http://hackage.haskell.org/package/directory-1.3.8.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/directory-1.3.8.3/src/LICENSE) | Platform-agnostic library for filesystem operations | `concurrent-output`, `hedgehog`, `process` |+| `distributive` | [`0.6.2.1`](http://hackage.haskell.org/package/distributive-0.6.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/distributive-0.6.2.1/src/LICENSE) | Distributive functors -- Dual to Traversable | `adjunctions`, `barbies`, `comonad`, `free`, `kan-extensions`, `lens`, `profunctors`, `semigroupoids` |+| `either` | [`5.0.2`](http://hackage.haskell.org/package/either-5.0.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/either-5.0.2/src/LICENSE) | Combinators for working with sums | `yaya` |+| `erf` | [`2.0.0.0`](http://hackage.haskell.org/package/erf-2.0.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/erf-2.0.0.0) | The error function, erf, and related functions. | `hedgehog` |+| **`exceptions`** | [`0.10.7`](http://hackage.haskell.org/package/exceptions-0.10.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/exceptions-0.10.7/src/LICENSE) | Extensible optionally-pure exceptions | `concurrent-output`, `filepath`, `free`, `hedgehog`, `lens`, `os-string`, `resourcet`, `safe-exceptions` |+| **`filepath`** | [`1.5.2.0`](http://hackage.haskell.org/package/filepath-1.5.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/filepath-1.5.2.0/src/LICENSE) | Library for manipulating FilePaths in a cross platform way. | `directory`, `hashable`, `lens`, `pretty-show`, `process`, `unix` |+| `free` | [`5.2`](http://hackage.haskell.org/package/free-5.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/free-5.2/src/LICENSE) | Monads for free | `adjunctions`, `kan-extensions`, `lens`, `yaya` |+| **`ghc-bignum`** | [`1.3`](http://hackage.haskell.org/package/ghc-bignum-1.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-bignum-1.3/src/LICENSE) | GHC BigNum library | `ghc-internal`, `hashable` |+| **`ghc-boot-th`** | [`9.10.1`](http://hackage.haskell.org/package/ghc-boot-th-9.10.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-boot-th-9.10.1/src/LICENSE) | Shared functionality between GHC and the @template-haskell@ library | `deriving-compat`, `template-haskell` |+| **`ghc-internal`** | [`9.1001.0`](http://hackage.haskell.org/package/ghc-internal-9.1001.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-internal-9.1001.0/src/LICENSE) | Basic libraries | `base` |+| **`ghc-prim`** | [`0.11.0`](http://hackage.haskell.org/package/ghc-prim-0.11.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-prim-0.11.0/src/LICENSE) | GHC primitives | *(core library)* |+| `hashable` | [`1.5.0.0`](http://hackage.haskell.org/package/hashable-1.5.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hashable-1.5.0.0/src/LICENSE) | A class for types that can be converted to a hash value | `async`, `constraints`, `lens`, `semigroupoids`, `strict`, `these`, `unordered-containers` |+| `haskell-lexer` | [`1.1.1`](http://hackage.haskell.org/package/haskell-lexer-1.1.1) | [`MIT`](http://hackage.haskell.org/package/haskell-lexer-1.1.1/src/LICENSE) | A fully compliant Haskell 98 lexer | `pretty-show` |+| `indexed-traversable` | [`0.1.4`](http://hackage.haskell.org/package/indexed-traversable-0.1.4) | [`BSD-2-Clause`](http://hackage.haskell.org/package/indexed-traversable-0.1.4/src/LICENSE) | FunctorWithIndex, FoldableWithIndex, TraversableWithIndex | `comonad`, `free`, `indexed-traversable-instances`, `lens` |+| `indexed-traversable-instances` | [`0.1.2`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/indexed-traversable-instances-0.1.2/src/LICENSE) | More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex | `lens` |+| `invariant` | [`0.6.3`](http://hackage.haskell.org/package/invariant-0.6.3) | [`BSD-2-Clause`](http://hackage.haskell.org/package/invariant-0.6.3/src/LICENSE) | Haskell98 invariant functors | `kan-extensions` |+| `kan-extensions` | [`5.2.6`](http://hackage.haskell.org/package/kan-extensions-5.2.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/kan-extensions-5.2.6/src/LICENSE) | Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads | `lens`, `yaya` |+| `lens` | [`5.3.2`](http://hackage.haskell.org/package/lens-5.3.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/lens-5.3.2/src/LICENSE) | Lenses, Folds and Traversals | `yaya` |+| `lifted-async` | [`0.10.2.6`](http://hackage.haskell.org/package/lifted-async-0.10.2.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-async-0.10.2.6/src/LICENSE) | Run lifted IO operations asynchronously and wait for their results | `hedgehog` |+| `lifted-base` | [`0.2.3.12`](http://hackage.haskell.org/package/lifted-base-0.2.3.12) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-base-0.2.3.12/src/LICENSE) | lifted IO operations from the base library | `lifted-async` |+| `mmorph` | [`1.2.0`](http://hackage.haskell.org/package/mmorph-1.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mmorph-1.2.0/src/LICENSE) | Monad morphisms | `hedgehog` |+| `monad-control` | [`1.0.3.1`](http://hackage.haskell.org/package/monad-control-1.0.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/monad-control-1.0.3.1/src/LICENSE) | Lift control operations, like exception catching, through monad transformers | `hedgehog`, `lifted-async`, `lifted-base` |+| **`mtl`** | [`2.3.1`](http://hackage.haskell.org/package/mtl-2.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mtl-2.3.1/src/LICENSE) | Monad classes for transformers, using functional dependencies | `adjunctions`, `constraints`, `either`, `exceptions`, `free`, `hedgehog`, `kan-extensions`, `lens`, `mmorph`, `random`, `resourcet` |+| **`os-string`** | [`2.0.2`](http://hackage.haskell.org/package/os-string-2.0.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/os-string-2.0.2/src/LICENSE) | Library for manipulating Operating system strings. | `directory`, `filepath`, `hashable`, `unix` |+| `parallel` | [`3.2.2.0`](http://hackage.haskell.org/package/parallel-3.2.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/parallel-3.2.2.0/src/LICENSE) | Parallel programming library | `lens` |+| **`pretty`** | [`1.1.3.6`](http://hackage.haskell.org/package/pretty-1.1.3.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/pretty-1.1.3.6/src/LICENSE) | Pretty-printing library | `pretty-show`, `template-haskell` |+| `pretty-show` | [`1.10`](http://hackage.haskell.org/package/pretty-show-1.10) | [`MIT`](http://hackage.haskell.org/package/pretty-show-1.10/src/LICENSE) | Tools for working with derived `Show` instances and generic inspection of values. | `hedgehog` |+| `primitive` | [`0.9.0.0`](http://hackage.haskell.org/package/primitive-0.9.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/primitive-0.9.0.0/src/LICENSE) | Primitive memory-related operations | `hedgehog`, `resourcet`, `vector` |+| **`process`** | [`1.6.19.0`](http://hackage.haskell.org/package/process-1.6.19.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/process-1.6.19.0/src/LICENSE) | Process libraries | `concurrent-output` |+| `profunctors` | [`5.6.2`](http://hackage.haskell.org/package/profunctors-5.6.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/profunctors-5.6.2/src/LICENSE) | Profunctors | `adjunctions`, `either`, `free`, `invariant`, `kan-extensions`, `lens`, `yaya` |+| `random` | [`1.2.1.2`](http://hackage.haskell.org/package/random-1.2.1.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/random-1.2.1.2/src/LICENSE) | Pseudo-random number generation | `hedgehog` |+| `reflection` | [`2.1.8`](http://hackage.haskell.org/package/reflection-2.1.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/reflection-2.1.8/src/LICENSE) | Reifies arbitrary terms into types that can be reflected back into terms | `lens` |+| `resourcet` | [`1.3.0`](http://hackage.haskell.org/package/resourcet-1.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/resourcet-1.3.0/src/LICENSE) | Deterministic allocation and freeing of scarce resources. | `hedgehog` |+| `safe-exceptions` | [`0.1.7.4`](http://hackage.haskell.org/package/safe-exceptions-0.1.7.4) | [`MIT`](http://hackage.haskell.org/package/safe-exceptions-0.1.7.4/src/LICENSE) | Safe, consistent, and easy exception handling | `hedgehog` |+| `semigroupoids` | [`6.0.1`](http://hackage.haskell.org/package/semigroupoids-6.0.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/semigroupoids-6.0.1/src/LICENSE) | Semigroupoids: Category sans id | `adjunctions`, `either`, `free`, `kan-extensions`, `lens` |+| `semigroups` | [`0.20`](http://hackage.haskell.org/package/semigroups-0.20) | [`BSD-3-Clause`](http://hackage.haskell.org/package/semigroups-0.20/src/LICENSE) | Anything that associates | `adjunctions` |+| `splitmix` | [`0.1.0.5`](http://hackage.haskell.org/package/splitmix-0.1.0.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/splitmix-0.1.0.5/src/LICENSE) | Fast Splittable PRNG | `random` |+| **`stm`** | [`2.5.3.1`](http://hackage.haskell.org/package/stm-2.5.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/stm-2.5.3.1/src/LICENSE) | Software Transactional Memory | `StateVar`, `async`, `concurrent-output`, `exceptions`, `hedgehog`, `invariant`, `monad-control`, `transformers-base` |+| `strict` | [`0.5.1`](http://hackage.haskell.org/package/strict-0.5.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/strict-0.5.1/src/LICENSE) | Strict data types and String IO. | `lens`, `yaya` |+| `tagged` | [`0.8.8`](http://hackage.haskell.org/package/tagged-0.8.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagged-0.8.8/src/LICENSE) | Haskell 98 phantom types to avoid unsafely passing dummy arguments | `adjunctions`, `bifunctors`, `boring`, `comonad`, `distributive`, `indexed-traversable-instances`, `invariant`, `kan-extensions`, `lens`, `profunctors`, `semigroupoids` |+| **`template-haskell`** | [`2.22.0.0`](http://hackage.haskell.org/package/template-haskell-2.22.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/template-haskell-2.22.0.0/src/LICENSE) | Support library for Template Haskell | `OneTuple`, `bifunctors`, `bytestring`, `containers`, `deriving-compat`, `exceptions`, `filepath`, `free`, `hedgehog`, `invariant`, `lens`, `os-string`, `primitive`, `reflection`, `semigroupoids`, `tagged`, `text`, `th-abstraction`, `unordered-containers`, `yaya` |+| `terminal-size` | [`0.3.4`](http://hackage.haskell.org/package/terminal-size-0.3.4) | [`BSD-3-Clause`](http://hackage.haskell.org/package/terminal-size-0.3.4/src/LICENSE) | Get terminal window height and width | `concurrent-output` |+| **`text`** | [`2.1.1`](http://hackage.haskell.org/package/text-2.1.1) | [`BSD-2-Clause`](http://hackage.haskell.org/package/text-2.1.1/src/LICENSE) | An efficient packed Unicode text type. | `concurrent-output`, `hashable`, `hedgehog`, `lens`, `pretty-show`, `strict`, `wl-pprint-annotated` |+| `th-abstraction` | [`0.7.0.0`](http://hackage.haskell.org/package/th-abstraction-0.7.0.0) | [`ISC`](http://hackage.haskell.org/package/th-abstraction-0.7.0.0/src/LICENSE) | Nicer interface for reified information about data types | `bifunctors`, `deriving-compat`, `free`, `invariant`, `lens`, `yaya` |+| `these` | [`1.2.1`](http://hackage.haskell.org/package/these-1.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/these-1.2.1/src/LICENSE) | An either-or-both data type. | `lens`, `strict` |+| **`time`** | [`1.12.2`](http://hackage.haskell.org/package/time-1.12.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/time-1.12.2/src/LICENSE) | A time library | `directory`, `hedgehog`, `unix` |+| **`transformers`** | [`0.6.1.1`](http://hackage.haskell.org/package/transformers-0.6.1.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-0.6.1.1/src/LICENSE) | Concrete functor and monad transformers | `StateVar`, `adjunctions`, `barbies`, `bifunctors`, `boring`, `comonad`, `concurrent-output`, `constraints`, `contravariant`, `deriving-compat`, `distributive`, `exceptions`, `free`, `hedgehog`, `indexed-traversable`, `invariant`, `kan-extensions`, `lens`, `mmorph`, `monad-control`, `mtl`, `primitive`, `profunctors`, `resourcet`, `safe-exceptions`, `semigroupoids`, `strict`, `tagged`, `transformers-base`, `transformers-compat`, `unliftio-core`, `yaya` |+| `transformers-base` | [`0.4.6`](http://hackage.haskell.org/package/transformers-base-0.4.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-base-0.4.6/src/LICENSE) | Lift computations from the bottom of a transformer stack | `free`, `hedgehog`, `lifted-async`, `lifted-base`, `monad-control` |+| `transformers-compat` | [`0.7.2`](http://hackage.haskell.org/package/transformers-compat-0.7.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-compat-0.7.2/src/LICENSE) | A small compatibility shim for the transformers library | `adjunctions`, `comonad`, `deriving-compat`, `invariant`, `lens`, `mmorph`, `monad-control`, `semigroupoids`, `transformers-base` |+| **`unix`** | [`2.8.5.1`](http://hackage.haskell.org/package/unix-2.8.5.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unix-2.8.5.1/src/LICENSE) | POSIX functionality | `concurrent-output`, `directory`, `process` |+| `unliftio-core` | [`0.2.1.0`](http://hackage.haskell.org/package/unliftio-core-0.2.1.0) | [`MIT`](http://hackage.haskell.org/package/unliftio-core-0.2.1.0/src/LICENSE) | The MonadUnliftIO typeclass for unlifting monads to IO | `resourcet` |+| `unordered-containers` | [`0.2.20`](http://hackage.haskell.org/package/unordered-containers-0.2.20) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unordered-containers-0.2.20/src/LICENSE) | Efficient hashing-based container types | `indexed-traversable-instances`, `invariant`, `lens`, `semigroupoids` |+| `vector` | [`0.13.1.0`](http://hackage.haskell.org/package/vector-0.13.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vector-0.13.1.0/src/LICENSE) | Efficient Arrays | `indexed-traversable-instances`, `lens` |+| `vector-stream` | [`0.1.0.1`](http://hackage.haskell.org/package/vector-stream-0.1.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vector-stream-0.1.0.1/src/LICENSE) | Efficient Streams | `vector` |+| `void` | [`0.7.3`](http://hackage.haskell.org/package/void-0.7.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/void-0.7.3/src/LICENSE) | A Haskell 98 logically uninhabited data type | `adjunctions` |+| `wl-pprint-annotated` | [`0.1.0.1`](http://hackage.haskell.org/package/wl-pprint-annotated-0.1.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/wl-pprint-annotated-0.1.0.1/src/LICENSE) | Pretty printer with annotation support | `hedgehog` |+
yaya-hedgehog.cabal view
@@ -1,64 +1,68 @@-cabal-version:  3.0+cabal-version: 3.0 -name:        yaya-hedgehog-version:     0.3.0.2-synopsis:    Hedgehog testing support for the Yaya recursion scheme-             library.+name: yaya-hedgehog+version: 0.3.0.3+synopsis: Hedgehog testing support for the Yaya recursion scheme library. description: If you use Yaya in your own code and have tests written              using Hedgehog, then this library will help you with              generating trees, verifying type class instances, etc.-author:      Greg Pfeil <greg@technomadic.org>-maintainer:  Greg Pfeil <greg@technomadic.org>-copyright:   2017 Greg Pfeil-homepage:    https://github.com/sellout/yaya#readme+author: Greg Pfeil <greg@technomadic.org>+maintainer: Greg Pfeil <greg@technomadic.org>+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+category: Recursion+build-type: Custom+license: AGPL-3.0-or-later license-files:   LICENSE-extra-source-files:+extra-doc-files:   CHANGELOG.md   README.md+  docs/*.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+    8.8.1,+    8.10.1, 8.10.7,+    9.0.1, 9.0.2,+    9.2.1, 9.2.5,+    9.4.1, 9.4.5,+    9.6.1, 9.6.3,+    9.8.1,+    9.10.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),+-- This mimics the GHC2024 extension+-- (https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html?highlight=doandifthenelse#extension-GHC2024), -- 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+-- is GHC 9.10, then this stanza can be removed and `import: GHC2024` can be+-- replaced by `default-language: GHC2024`. If the oldest supported compiler is+-- GHC 9.2, then this can be simplified by setting `default-language: GHC2021`+-- and only including the extensions added by GHC2024.+common GHC2024   default-language: Haskell2010   default-extensions:     BangPatterns     BinaryLiterals     ConstraintKinds+    DataKinds     DeriveDataTypeable     DeriveGeneric     -- DeriveLift -- uncomment if the oldest supported version is GHC 8.10.1+     DeriveTraversable     DerivingStrategies+    DisambiguateRecordFields     DoAndIfThenElse     EmptyCase     ExistentialQuantification     FlexibleContexts     FlexibleInstances-    GADTSyntax+    GADTs     GeneralizedNewtypeDeriving     HexFloatLiterals     -- ImportQualifiedPost -- uncomment if the oldest supported version is GHC 8.10.1+@@ -74,6 +78,7 @@     PolyKinds     PostfixOperators     RankNTypes+    RoleAnnotations     ScopedTypeVariables     StandaloneDeriving     -- StandaloneKindSignatures -- uncomment if the oldest supported version is GHC 8.10.1+@@ -81,23 +86,29 @@     TypeApplications     TypeOperators     UnicodeSyntax-    NoExplicitNamespaces +flag noisy-deprecations+  description:+    Prior to GHC 9.10, the `DEPRECATED` pragma can’t distinguish between terms+    and types. Consenquently, you can get spurious warnings when there’s a name+    collision and the name in the other namespace is deprecated. Or you can+    choose to not get those warnings, at the risk of not being warned when+    there’s a name collision and the namespace you’re referencing is the one+    that’s deprecated.+ common defaults-  import: GHC2021+  import: GHC2024   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},+    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, 4.20.0},   ghc-options:     -Weverything+    -- This one just reports unfixable things, AFAICT.+    -Wno-all-missed-specialisations     -- 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.@@ -108,8 +119,6 @@       -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.@@ -121,6 +130,7 @@       -- Inference good.       -Wno-missing-role-annotations   default-extensions:+    BlockArguments     DefaultSignatures     ExplicitNamespaces     FunctionalDependencies@@ -132,7 +142,6 @@     -- 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@@ -140,44 +149,30 @@     NoImplicitPrelude     NoMonomorphismRestriction     NoPatternGuards+    NoStarIsType     NoTypeApplications+  if flag(noisy-deprecations)+    cpp-options: -DSELLOUT_NOISY_DEPRECATIONS  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 ^>= {3.0.0, 3.2.0, 3.4.0, 3.6.0, 3.8.0, 3.10.0, 3.12.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, 4.20.0},     cabal-doctest ^>= {1.0.0},  library   import: defaults   hs-source-dirs:     src-  exposed-modules:-    Yaya.Hedgehog-    Yaya.Hedgehog.Expr-    Yaya.Hedgehog.Fold   build-depends:     deriving-compat ^>= {0.5.9, 0.6},     hedgehog ^>= {1.0, 1.1, 1.2, 1.4},     yaya ^>= {0.5.1, 0.6.0},-  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 profunctors-    -trust semigroupoids-    -trust stm-    -trust text-    -trust transformers-compat+  exposed-modules:+    Yaya.Hedgehog+    Yaya.Hedgehog.Expr+    Yaya.Hedgehog.Fold  test-suite doctests   import: defaults@@ -187,6 +182,12 @@   build-depends:     doctest ^>= {0.16.0, 0.18.1, 0.20.1, 0.21.1, 0.22.2},     yaya-hedgehog,+  if impl(ghc >= 8.10.1)+    ghc-options:+      -- `doctest` requires the package containing the doctests as a dependency+      -- to ensure it gets built before this test-suite, even though the package+      -- appears to be unused.+      -Wno-unused-packages   -- 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.@@ -196,7 +197,6 @@     -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@@ -225,20 +225,4 @@   ghc-options:     -rtsopts     -threaded-    -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 semigroupoids-    -trust stm-    -trust text-    -trust transformers-compat     -with-rtsopts=-N