diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@
 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/).
 
+## [1.0.0.0] - 2026-04-22
+
+### Added
+
+- support for yaya-1.0.0
+
 ## [0.4.0.0] - 2026-01-18
 
 ### Added
@@ -104,12 +110,13 @@
 
 - everything (this is the initial release)
 
-[0.4.0.0]: https://github.com/sellout/no-recursion/compare/v3.2.3...v4.0.0
-[0.3.0.5]: https://github.com/sellout/no-recursion/compare/v3.2.2...v3.2.3
-[0.3.0.4]: https://github.com/sellout/no-recursion/compare/v3.2.1...v3.2.2
-[0.3.0.3]: https://github.com/sellout/no-recursion/compare/v3.2.0...v3.2.1
-[0.3.0.2]: https://github.com/sellout/no-recursion/compare/v3.1.0...v3.2.0
-[0.3.0.1]: https://github.com/sellout/no-recursion/compare/v3.0.0...v3.1.0
-[0.3.0.0]: https://github.com/sellout/no-recursion/compare/v2.0.0...v3.0.0
-[0.2.1.3]: https://github.com/sellout/no-recursion/compare/v1.0.0...v2.0.0
+[0.4.0.1]: https://github.com/sellout/yaya/compare/v4.0.0...v5.0.0
+[0.4.0.0]: https://github.com/sellout/yaya/compare/v3.2.3...v4.0.0
+[0.3.0.5]: https://github.com/sellout/yaya/compare/v3.2.2...v3.2.3
+[0.3.0.4]: https://github.com/sellout/yaya/compare/v3.2.1...v3.2.2
+[0.3.0.3]: https://github.com/sellout/yaya/compare/v3.2.0...v3.2.1
+[0.3.0.2]: https://github.com/sellout/yaya/compare/v3.1.0...v3.2.0
+[0.3.0.1]: https://github.com/sellout/yaya/compare/v3.0.0...v3.1.0
+[0.3.0.0]: https://github.com/sellout/yaya/compare/v2.0.0...v3.0.0
+[0.2.1.3]: https://github.com/sellout/yaya/compare/v1.0.0...v2.0.0
 [0.2.1.2]: https://github.com/sellout/yaya/releases/tag/v1.0.0
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,17 +1,12 @@
 -- __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
 
diff --git a/docs/license-report.md b/docs/license-report.md
--- a/docs/license-report.md
+++ b/docs/license-report.md
@@ -12,41 +12,39 @@
 | `deriving-compat` | [`0.6.8`](http://hackage.haskell.org/package/deriving-compat-0.6.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deriving-compat-0.6.8/src/LICENSE) | Backports of GHC deriving extensions |  |
 | `hedgehog` | [`1.7`](http://hackage.haskell.org/package/hedgehog-1.7) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hedgehog-1.7/src/LICENSE) | Release with confidence. |  |
 | `no-recursion` | [`0.4.0.0`](http://hackage.haskell.org/package/no-recursion-0.4.0.0) | [`(AGPL-3.0-only WITH Universal-FOSS-exception-1.0 OR LicenseRef-commercial)`](http://hackage.haskell.org/package/no-recursion-0.4.0.0/src/LICENSE) | A GHC plugin to remove support for recursion | `yaya` |
-| `yaya` | [`0.7.0.0`](http://hackage.haskell.org/package/yaya-0.7.0.0) |  *MISSING* | *MISSING* |  |
+| `yaya` | [`1.0.0.0`](http://hackage.haskell.org/package/yaya-1.0.0.0) |  *MISSING* | *MISSING* |  |
 
 ## Indirect transitive dependencies
 
 | Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Depended upon by |
 | --- | --- | --- | --- | --- |
-| `OneTuple` | [`0.4.2.1`](http://hackage.haskell.org/package/OneTuple-0.4.2.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/OneTuple-0.4.2.1/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.4`](http://hackage.haskell.org/package/adjunctions-4.4.4) | [`BSD-2-Clause`](http://hackage.haskell.org/package/adjunctions-4.4.4/src/LICENSE) | Adjunctions and representable functors | `kan-extensions` |
 | `ansi-terminal` | [`1.1.5`](http://hackage.haskell.org/package/ansi-terminal-1.1.5) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-1.1.5/src/LICENSE) | Simple ANSI terminal support | `concurrent-output`, `hedgehog` |
 | `ansi-terminal-types` | [`1.1.3`](http://hackage.haskell.org/package/ansi-terminal-types-1.1.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ansi-terminal-types-1.1.3/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 | `binary`, `containers`, `deepseq`, `ghc`, `ghci`, `indexed-traversable`, `invariant`, `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` |
+| **`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 | `binary`, `containers`, `deepseq`, `ghc`, `ghci`, `indexed-traversable`, `invariant`, `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`, `strict`, `these` |
 | `async` | [`2.2.6`](http://hackage.haskell.org/package/async-2.2.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/async-2.2.6/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.4`](http://hackage.haskell.org/package/base-orphans-0.9.4) | [`MIT`](http://hackage.haskell.org/package/base-orphans-0.9.4/src/LICENSE) | Backwards-compatible orphan instances for base | `lens`, `profunctors`, `semigroupoids`, `transformers-base` |
-| `bifunctors` | [`5.6.3`](http://hackage.haskell.org/package/bifunctors-5.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bifunctors-5.6.3/src/LICENSE) | Bifunctors | `either`, `invariant`, `lens`, `profunctors`, `semigroupoids` |
+| `base-orphans` | [`0.9.4`](http://hackage.haskell.org/package/base-orphans-0.9.4) | [`MIT`](http://hackage.haskell.org/package/base-orphans-0.9.4/src/LICENSE) | Backwards-compatible orphan instances for base | `profunctors`, `semigroupoids`, `transformers-base` |
+| `bifunctors` | [`5.6.3`](http://hackage.haskell.org/package/bifunctors-5.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/bifunctors-5.6.3/src/LICENSE) | Bifunctors | `either`, `invariant`, `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`, `ghc`, `ghc-boot`, `ghci`, `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`, `ghc`, `ghc-boot`, `ghci`, `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.10`](http://hackage.haskell.org/package/comonad-5.0.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/comonad-5.0.10/src/LICENSE) | Comonads | `adjunctions`, `bifunctors`, `free`, `invariant`, `kan-extensions`, `lens`, `profunctors`, `semigroupoids`, `yaya` |
+| **`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`, `ghc`, `ghc-boot`, `ghci`, `hashable`, `hedgehog`, `os-string`, `random`, `strict`, `text`, `unix` |
+| `colour` | [`2.3.7`](http://hackage.haskell.org/package/colour-2.3.7) | [`MIT`](http://hackage.haskell.org/package/colour-2.3.7/src/LICENSE) | A model for human colour/color perception | `ansi-terminal`, `ansi-terminal-types` |
+| `comonad` | [`5.0.10`](http://hackage.haskell.org/package/comonad-5.0.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/comonad-5.0.10/src/LICENSE) | Comonads | `adjunctions`, `bifunctors`, `free`, `invariant`, `kan-extensions`, `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.3`](http://hackage.haskell.org/package/constraints-0.14.3) | [`BSD-2-Clause`](http://hackage.haskell.org/package/constraints-0.14.3/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`, `ghc`, `ghc-boot`, `ghc-heap`, `ghci`, `hashable`, `hedgehog`, `hpc`, `indexed-traversable`, `invariant`, `lens`, `parallel`, `resourcet`, `semigroupoids`, `th-abstraction`, `wl-pprint-annotated` |
-| `contravariant` | [`1.5.6`](http://hackage.haskell.org/package/contravariant-1.5.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/contravariant-1.5.6/src/LICENSE) | Contravariant functors | `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`, `ghc`, `ghc-boot`, `ghci`, `hashable`, `hedgehog`, `hpc`, `os-string`, `parallel`, `pretty`, `primitive`, `process`, `random`, `safe-exceptions`, `splitmix`, `strict`, `tagged`, `text`, `these`, `time`, `unordered-containers`, `vector`, `wl-pprint-annotated` |
+| `constraints` | [`0.14.4`](http://hackage.haskell.org/package/constraints-0.14.4) | [`BSD-2-Clause`](http://hackage.haskell.org/package/constraints-0.14.4/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`, `ghc`, `ghc-boot`, `ghc-heap`, `ghci`, `hashable`, `hedgehog`, `hpc`, `indexed-traversable`, `invariant`, `resourcet`, `semigroupoids`, `th-abstraction`, `wl-pprint-annotated` |
+| `contravariant` | [`1.5.6`](http://hackage.haskell.org/package/contravariant-1.5.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/contravariant-1.5.6/src/LICENSE) | Contravariant functors | `invariant`, `kan-extensions`, `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`, `ghc`, `ghc-boot`, `ghci`, `hashable`, `hedgehog`, `hpc`, `os-string`, `pretty`, `primitive`, `process`, `random`, `safe-exceptions`, `splitmix`, `strict`, `tagged`, `text`, `these`, `time`, `unordered-containers`, `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`, `ghc`, `ghc-boot`, `hedgehog`, `hpc`, `process` |
-| `distributive` | [`0.6.3`](http://hackage.haskell.org/package/distributive-0.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/distributive-0.6.3/src/LICENSE) | Distributive functors -- Dual to Traversable | `adjunctions`, `barbies`, `comonad`, `free`, `kan-extensions`, `lens`, `profunctors` |
+| `distributive` | [`0.6.3`](http://hackage.haskell.org/package/distributive-0.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/distributive-0.6.3/src/LICENSE) | Distributive functors -- Dual to Traversable | `adjunctions`, `barbies`, `comonad`, `free`, `kan-extensions`, `profunctors` |
 | `either` | [`5.0.3`](http://hackage.haskell.org/package/either-5.0.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/either-5.0.3/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`, `ghc`, `hedgehog`, `kan-extensions`, `lens`, `os-string`, `resourcet`, `safe-exceptions`, `semaphore-compat` |
-| **`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`, `ghc`, `ghc-boot`, `ghci`, `hashable`, `hpc`, `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` |
+| **`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`, `ghc`, `hedgehog`, `kan-extensions`, `os-string`, `resourcet`, `safe-exceptions`, `semaphore-compat` |
+| **`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`, `ghc`, `ghc-boot`, `ghci`, `hashable`, `hpc`, `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`, `yaya` |
 | **`ghc`** | [`9.10.1`](http://hackage.haskell.org/package/ghc-9.10.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-9.10.1/src/LICENSE) | The GHC API | `no-recursion` |
 | **`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` |
 | **`ghc-boot`** | [`9.10.1`](http://hackage.haskell.org/package/ghc-boot-9.10.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-boot-9.10.1/src/LICENSE) | Shared functionality between GHC and its boot libraries | `ghc`, `ghci` |
@@ -56,49 +54,43 @@
 | **`ghc-platform`** | [`0.1.0.0`](http://hackage.haskell.org/package/ghc-platform-0.1.0.0) |  *MISSING* | *MISSING* | `ghc-boot` |
 | **`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)* |
 | **`ghci`** | [`9.10.1`](http://hackage.haskell.org/package/ghci-9.10.1) |  *MISSING* | *MISSING* | `ghc` |
-| `hashable` | [`1.5.1.0`](http://hackage.haskell.org/package/hashable-1.5.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hashable-1.5.1.0/src/LICENSE) | A class for types that can be converted to a hash value | `async`, `constraints`, `lens`, `semigroupoids`, `strict`, `these`, `unordered-containers` |
+| `hashable` | [`1.5.1.0`](http://hackage.haskell.org/package/hashable-1.5.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hashable-1.5.1.0/src/LICENSE) | A class for types that can be converted to a hash value | `async`, `constraints`, `semigroupoids`, `strict`, `these`, `unordered-containers` |
 | `haskell-lexer` | [`1.2.1`](http://hackage.haskell.org/package/haskell-lexer-1.2.1) | [`MIT`](http://hackage.haskell.org/package/haskell-lexer-1.2.1/src/LICENSE) | A fully compliant Haskell 98 lexer | `pretty-show` |
 | **`hpc`** | [`0.7.0.1`](http://hackage.haskell.org/package/hpc-0.7.0.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/hpc-0.7.0.1/src/LICENSE) | Code Coverage Library for Haskell | `ghc` |
-| `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` |
+| `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` |
 | `invariant` | [`0.6.5`](http://hackage.haskell.org/package/invariant-0.6.5) | [`BSD-2-Clause`](http://hackage.haskell.org/package/invariant-0.6.5/src/LICENSE) | Haskell98 invariant functors | `kan-extensions` |
-| `kan-extensions` | [`5.2.8`](http://hackage.haskell.org/package/kan-extensions-5.2.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/kan-extensions-5.2.8/src/LICENSE) | Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads | `lens`, `yaya` |
-| `lens` | [`5.3.6`](http://hackage.haskell.org/package/lens-5.3.6) | [`BSD-2-Clause`](http://hackage.haskell.org/package/lens-5.3.6/src/LICENSE) | Lenses, Folds and Traversals | `yaya` |
+| `kan-extensions` | [`5.2.8`](http://hackage.haskell.org/package/kan-extensions-5.2.8) | [`BSD-3-Clause`](http://hackage.haskell.org/package/kan-extensions-5.2.8/src/LICENSE) | Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads | `yaya` |
 | `lifted-async` | [`0.11.0`](http://hackage.haskell.org/package/lifted-async-0.11.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/lifted-async-0.11.0/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.2`](http://hackage.haskell.org/package/mmorph-1.2.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/mmorph-1.2.2/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` |
+| **`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`, `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.3.0.0`](http://hackage.haskell.org/package/parallel-3.3.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/parallel-3.3.0.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.1.0`](http://hackage.haskell.org/package/primitive-0.9.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/primitive-0.9.1.0/src/LICENSE) | Primitive memory-related operations | `hedgehog`, `resourcet`, `vector` |
+| `primitive` | [`0.9.1.0`](http://hackage.haskell.org/package/primitive-0.9.1.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/primitive-0.9.1.0/src/LICENSE) | Primitive memory-related operations | `hedgehog`, `resourcet` |
 | **`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`, `ghc` |
-| `profunctors` | [`5.6.3`](http://hackage.haskell.org/package/profunctors-5.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/profunctors-5.6.3/src/LICENSE) | Profunctors | `adjunctions`, `either`, `free`, `invariant`, `kan-extensions`, `lens`, `yaya` |
+| `profunctors` | [`5.6.3`](http://hackage.haskell.org/package/profunctors-5.6.3) | [`BSD-3-Clause`](http://hackage.haskell.org/package/profunctors-5.6.3/src/LICENSE) | Profunctors | `adjunctions`, `either`, `free`, `invariant`, `kan-extensions`, `yaya` |
 | `random` | [`1.3.1`](http://hackage.haskell.org/package/random-1.3.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/random-1.3.1/src/LICENSE) | Pseudo-random number generation | `hedgehog` |
-| `reflection` | [`2.1.9`](http://hackage.haskell.org/package/reflection-2.1.9) | [`BSD-3-Clause`](http://hackage.haskell.org/package/reflection-2.1.9/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` |
 | **`semaphore-compat`** | [`1.0.0`](http://hackage.haskell.org/package/semaphore-compat-1.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/semaphore-compat-1.0.0) | Cross-platform abstraction for system semaphores | `ghc` |
-| `semigroupoids` | [`6.0.2`](http://hackage.haskell.org/package/semigroupoids-6.0.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/semigroupoids-6.0.2/src/LICENSE) | Semigroupoids: Category sans id | `adjunctions`, `either`, `free`, `kan-extensions`, `lens` |
+| `semigroupoids` | [`6.0.2`](http://hackage.haskell.org/package/semigroupoids-6.0.2) | [`BSD-2-Clause`](http://hackage.haskell.org/package/semigroupoids-6.0.2/src/LICENSE) | Semigroupoids: Category sans id | `adjunctions`, `either`, `free`, `kan-extensions` |
 | `splitmix` | [`0.1.3.2`](http://hackage.haskell.org/package/splitmix-0.1.3.2) | [`BSD-3-Clause`](http://hackage.haskell.org/package/splitmix-0.1.3.2/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`, `ghc`, `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.10`](http://hackage.haskell.org/package/tagged-0.8.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagged-0.8.10/src/LICENSE) | Haskell 98 phantom types to avoid unsafely passing dummy arguments | `adjunctions`, `bifunctors`, `boring`, `comonad`, `distributive`, `indexed-traversable-instances`, `invariant`, `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`, `ghc`, `ghci`, `hedgehog`, `invariant`, `lens`, `os-string`, `primitive`, `reflection`, `semigroupoids`, `tagged`, `text`, `th-abstraction`, `unordered-containers`, `yaya` |
+| `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. | `yaya` |
+| `tagged` | [`0.8.10`](http://hackage.haskell.org/package/tagged-0.8.10) | [`BSD-3-Clause`](http://hackage.haskell.org/package/tagged-0.8.10/src/LICENSE) | Haskell 98 phantom types to avoid unsafely passing dummy arguments | `adjunctions`, `bifunctors`, `boring`, `comonad`, `distributive`, `invariant`, `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 | `bifunctors`, `bytestring`, `containers`, `deriving-compat`, `exceptions`, `filepath`, `free`, `ghc`, `ghci`, `hedgehog`, `invariant`, `os-string`, `primitive`, `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.2.0`](http://hackage.haskell.org/package/th-abstraction-0.7.2.0) | [`ISC`](http://hackage.haskell.org/package/th-abstraction-0.7.2.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` |
+| **`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`, `pretty-show`, `strict`, `wl-pprint-annotated` |
+| `th-abstraction` | [`0.7.2.0`](http://hackage.haskell.org/package/th-abstraction-0.7.2.0) | [`ISC`](http://hackage.haskell.org/package/th-abstraction-0.7.2.0/src/LICENSE) | Nicer interface for reified information about data types | `bifunctors`, `deriving-compat`, `free`, `invariant`, `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. | `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`, `ghc`, `hedgehog`, `hpc`, `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`, `boring`, `comonad`, `concurrent-output`, `constraints`, `contravariant`, `distributive`, `exceptions`, `free`, `ghc`, `ghci`, `hedgehog`, `indexed-traversable`, `invariant`, `kan-extensions`, `lens`, `mmorph`, `monad-control`, `mtl`, `primitive`, `profunctors`, `random`, `resourcet`, `safe-exceptions`, `semigroupoids`, `strict`, `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`** | [`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`, `boring`, `comonad`, `concurrent-output`, `constraints`, `contravariant`, `distributive`, `exceptions`, `free`, `ghc`, `ghci`, `hedgehog`, `indexed-traversable`, `invariant`, `kan-extensions`, `mmorph`, `monad-control`, `mtl`, `primitive`, `profunctors`, `random`, `resourcet`, `safe-exceptions`, `semigroupoids`, `strict`, `transformers-base`, `transformers-compat`, `unliftio-core`, `yaya` |
+| `transformers-base` | [`0.4.6.1`](http://hackage.haskell.org/package/transformers-base-0.4.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/transformers-base-0.4.6.1/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 | `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`, `ghc`, `ghc-boot`, `ghci`, `process`, `semaphore-compat` |
 | `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.21`](http://hackage.haskell.org/package/unordered-containers-0.2.21) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unordered-containers-0.2.21/src/LICENSE) | Efficient hashing-based container types | `async`, `indexed-traversable-instances`, `invariant`, `lens`, `semigroupoids` |
-| `vector` | [`0.13.2.0`](http://hackage.haskell.org/package/vector-0.13.2.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/vector-0.13.2.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` |
+| `unordered-containers` | [`0.2.21`](http://hackage.haskell.org/package/unordered-containers-0.2.21) | [`BSD-3-Clause`](http://hackage.haskell.org/package/unordered-containers-0.2.21/src/LICENSE) | Efficient hashing-based container types | `async`, `invariant`, `semigroupoids` |
 | `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` |
 
diff --git a/src/Yaya/Hedgehog.hs b/src/Yaya/Hedgehog.hs
--- a/src/Yaya/Hedgehog.hs
+++ b/src/Yaya/Hedgehog.hs
@@ -6,7 +6,7 @@
   )
 where
 
-import safe "base" Control.Category (Category ((.)))
+import safe "base" Control.Category ((.))
 import safe "base" Control.Monad ((<=<))
 import safe "base" Control.Monad.IO.Class (MonadIO)
 import safe "base" Data.Function (const)
@@ -25,6 +25,7 @@
 evalNonterminating =
   maybe HH.success (const HH.failure <=< HH.annotateShow)
     <=< HH.evalIO . timeout 1_000_000 . evaluate
+{-# INLINEABLE evalNonterminating #-}
 
 -- | Returns success if the expression doesn’t terminate, failure otherwise.
 --   The value passed here should termina
diff --git a/src/Yaya/Hedgehog/Expr.hs b/src/Yaya/Hedgehog/Expr.hs
--- a/src/Yaya/Hedgehog/Expr.hs
+++ b/src/Yaya/Hedgehog/Expr.hs
@@ -14,7 +14,7 @@
   )
 where
 
-import safe "base" Control.Applicative (Applicative ((<*>)))
+import safe "base" Control.Applicative ((<*>))
 import safe "base" Data.Eq (Eq)
 import safe "base" Data.Foldable (Foldable)
 import safe "base" Data.Functor (Functor, (<$>))
diff --git a/src/Yaya/Hedgehog/Fold.hs b/src/Yaya/Hedgehog/Fold.hs
--- a/src/Yaya/Hedgehog/Fold.hs
+++ b/src/Yaya/Hedgehog/Fold.hs
@@ -15,11 +15,11 @@
   )
 where
 
-import safe "base" Control.Category (Category ((.)))
-import safe "base" Data.Bifunctor (Bifunctor (bimap, first))
+import safe "base" Control.Category ((.))
+import safe "base" Data.Bifunctor (bimap, first)
 import safe "base" Data.Eq (Eq)
 import safe "base" Data.Function (($))
-import safe "base" Data.Functor (Functor (fmap))
+import safe "base" Data.Functor (Functor, fmap)
 import safe "base" Data.Proxy (Proxy (Proxy))
 import safe qualified "base" Data.Tuple as Tuple
 import safe "base" Data.Void (Void, absurd)
@@ -36,10 +36,14 @@
   )
 import "yaya" Yaya.Fold
   ( Algebra,
-    Corecursive (ana),
-    Projectable (project),
-    Recursive (cata),
-    Steppable (embed),
+    Corecursive,
+    Projectable,
+    Recursive,
+    Steppable,
+    ana,
+    cata,
+    embed,
+    project,
   )
 import safe "yaya" Yaya.Fold.Common (diagonal)
 import safe "yaya" Yaya.Fold.Native ()
@@ -106,6 +110,7 @@
   uncurry (===)
     . bimap (cata φ . cata (embed . ε :: f u -> u)) (cata (φ . ε))
     . diagonal
+{-# INLINEABLE law_cataCompose #-}
 
 -- | Creates a generator for any `Steppable` type whose pattern functor has
 --   terminal cases (e.g., not `Data.Functor.Identity` or `((,) a)`). @leaf@ can
@@ -149,6 +154,7 @@
   Algebra (->) Maybe (Gen t)
 genAlgebra leaf branch =
   maybe (fmap (embed . fmap absurd) leaf) (fmap embed . branch)
+{-# INLINEABLE genAlgebra #-}
 
 -- | Creates a generator for potentially-infinite values.
 genCorecursive :: (Corecursive (->) t f) => (a -> f a) -> Gen a -> Gen t
@@ -174,6 +180,7 @@
     evalNonterminating . fst . project @_ @(t (Pair a)) $ ana (\y -> y :!: y) x
     -- but using a lazy functor loses this property
     Tuple.fst (project @_ @(t ((,) a)) $ ana (\y -> (y, y)) x) === x
+{-# INLINEABLE corecursiveIsUnsafe #-}
 
 -- | Show that using a `Corecursive` structure recursively can lead to
 --   non-termination.
@@ -199,3 +206,4 @@
     -- But again, if you use a lazy functor, you lose that property, and you can
     -- short-circuit.
     cata Tuple.fst (ana @_ @(t ((,) a)) (\y -> (y, y)) x) === x
+{-# INLINEABLE recursiveIsUnsafe #-}
diff --git a/tests/Test/Fold.hs b/tests/Test/Fold.hs
--- a/tests/Test/Fold.hs
+++ b/tests/Test/Fold.hs
@@ -4,13 +4,19 @@
 
 module Test.Fold (tests) where
 
-import safe "base" Control.Category (Category (id))
+import safe "base" Control.Category (id)
 import safe "base" Control.Monad ((=<<))
 import safe "base" Data.Bool (Bool)
 import safe "base" Data.Function (($))
 import safe "base" Data.Proxy (Proxy (Proxy))
 import safe "base" System.IO (IO)
-import safe "hedgehog" Hedgehog (Property, checkParallel, discover, forAll, property)
+import safe "hedgehog" Hedgehog
+  ( Property,
+    checkParallel,
+    discover,
+    forAll,
+    property,
+  )
 import safe qualified "hedgehog" Hedgehog.Gen as Gen
 import safe "yaya" Yaya.Fold (Mu)
 import safe "yaya" Yaya.Fold.Common (size)
diff --git a/tests/Test/Fold/Common.hs b/tests/Test/Fold/Common.hs
--- a/tests/Test/Fold/Common.hs
+++ b/tests/Test/Fold/Common.hs
@@ -4,11 +4,11 @@
 
 module Test.Fold.Common (tests) where
 
-import safe "base" Control.Category (Category ((.)))
+import safe "base" Control.Category ((.))
 import safe "base" Control.Monad ((=<<))
 import safe "base" Data.Bool (Bool)
-import safe "base" Data.Functor (Functor (fmap))
-import safe "base" Data.Ord (Ord ((<)))
+import safe "base" Data.Functor (fmap)
+import safe "base" Data.Ord ((<))
 import safe "base" System.IO (IO)
 import safe "hedgehog" Hedgehog
   ( Property,
@@ -19,11 +19,11 @@
     property,
   )
 import safe qualified "hedgehog" Hedgehog.Gen as Gen
-import safe "yaya" Yaya.Fold (Recursive (cata), zipAlgebras)
+import safe "yaya" Yaya.Fold (cata, zipAlgebras)
 import safe "yaya" Yaya.Fold.Common (height, size)
 import safe "yaya" Yaya.Pattern (uncurry)
 import safe "yaya-hedgehog" Yaya.Hedgehog.Expr (genMuExpr)
-import safe "base" Prelude (Integral (toInteger))
+import safe "base" Prelude (toInteger)
 
 -- TODO: For some reason HLint is complaining that TemplateHaskell is unused.
 {-# HLINT ignore "Unused LANGUAGE pragma" #-}
diff --git a/tests/Test/Fold/Native.hs b/tests/Test/Fold/Native.hs
--- a/tests/Test/Fold/Native.hs
+++ b/tests/Test/Fold/Native.hs
@@ -4,13 +4,19 @@
 
 module Test.Fold.Native (tests) where
 
-import safe "base" Control.Category (Category (id))
+import safe "base" Control.Category (id)
 import safe "base" Control.Monad ((=<<))
 import safe "base" Data.Bool (Bool)
 import safe "base" Data.Function (($))
 import safe "base" Data.Proxy (Proxy (Proxy))
 import safe "base" System.IO (IO)
-import safe "hedgehog" Hedgehog (Property, checkParallel, discover, forAll, property)
+import safe "hedgehog" Hedgehog
+  ( Property,
+    checkParallel,
+    discover,
+    forAll,
+    property,
+  )
 import safe qualified "hedgehog" Hedgehog.Gen as Gen
 import safe "yaya" Yaya.Fold.Common (size)
 import safe "yaya" Yaya.Fold.Native (Fix)
diff --git a/tests/Test/Retrofit.hs b/tests/Test/Retrofit.hs
--- a/tests/Test/Retrofit.hs
+++ b/tests/Test/Retrofit.hs
@@ -6,15 +6,17 @@
 module Test.Retrofit (tests) where
 
 import safe "base" Data.Bool (Bool)
-import safe "base" Data.Eq (Eq ((==)))
+import safe "base" Data.Eq (Eq, (==))
 import safe "base" Data.Int (Int)
-import safe "base" Data.Ord (Ord (compare))
+import safe "base" Data.Ord (Ord, compare)
 import safe "base" System.IO (IO)
 import safe "base" Text.Read
-  ( Read (readListPrec, readPrec),
+  ( Read,
+    readListPrec,
     readListPrecDefault,
+    readPrec,
   )
-import safe "base" Text.Show (Show (showsPrec))
+import safe "base" Text.Show (Show, showsPrec)
 import safe "deriving-compat" Data.Eq.Deriving (deriveEq1)
 import safe "deriving-compat" Data.Ord.Deriving (deriveOrd1)
 import safe "deriving-compat" Text.Read.Deriving (deriveRead1)
diff --git a/yaya-hedgehog.cabal b/yaya-hedgehog.cabal
--- a/yaya-hedgehog.cabal
+++ b/yaya-hedgehog.cabal
@@ -3,7 +3,7 @@
 --   exception.
 
 name: yaya-hedgehog
-version: 0.4.0.0
+version: 1.0.0.0
 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
@@ -50,7 +50,7 @@
   location: https://github.com/sellout/yaya.git
   subdir: hedgehog
   -- NB: This is the repo version, which is distinct from the package version.
-  tag: v4.0.0
+  tag: v5.0.0
 
 custom-setup
   setup-depends:
@@ -144,8 +144,6 @@
     base ^>= {4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0, 4.20.0, 4.21.0, 4.22.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
@@ -172,6 +170,12 @@
       -Wno-missing-poly-kind-signatures
       -- Inference good.
       -Wno-missing-role-annotations
+  -- remove if the oldest supported version is GHC 9.14.1+
+  if impl(ghc >= 9.14.1)
+    ghc-options:
+      -- See
+      -- https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0581-namespace-specified-imports.rst#deprecate-use-of-pattern-in-import-export-lists
+      -Wno-pattern-namespace-specifier
   default-extensions:
     BlockArguments
     DefaultSignatures
@@ -210,7 +214,7 @@
   build-depends:
     deriving-compat ^>= {0.5.9, 0.6},
     hedgehog ^>= {1.0.1, 1.1, 1.2, 1.4, 1.5, 1.7},
-    yaya ^>= {0.5.1, 0.6.0, 0.7.0},
+    yaya ^>= {0.5.1, 0.6.0, 0.7.0, 1.0.0},
   exposed-modules:
     Yaya.Hedgehog
     Yaya.Hedgehog.Expr
@@ -263,7 +267,7 @@
   build-depends:
     deriving-compat ^>= {0.5.9, 0.6},
     hedgehog ^>= {1.0.1, 1.1, 1.2, 1.4, 1.5, 1.7},
-    yaya ^>= {0.5.1, 0.6.0, 0.7.0},
+    yaya ^>= {0.5.1, 0.6.0, 0.7.0, 1.0.0},
     yaya-hedgehog,
   ghc-options:
     -rtsopts
