diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,6 +8,8 @@
 
 How's this possible? You can’t have totality _and_ Turing-completeness, can you? Oh, but [you can](https://pdfs.semanticscholar.org/e291/5b546b9039a8cf8f28e0b814f6502630239f.pdf) – there is a particular type, `Partial a` (encoded with a fixed-point) that handles potential non-termination, akin to the way that `Maybe a` handles exceptional cases. It can be folded into `IO` in your main function, so that the runtime can execute a Turing-complete program that was modeled totally.
 
+**NB**: The tests for this package are unfortunately included in `yaya-hedgehog` instead, to avoid a dependency cycle.
+
 ## organization
 
 This organization is intended to make this a lightly-opinionated library. You should only need to import one module (per package) into any module of yours.
diff --git a/yaya.cabal b/yaya.cabal
--- a/yaya.cabal
+++ b/yaya.cabal
@@ -1,7 +1,7 @@
 cabal-version:  3.0
 
 name:        yaya
-version:     0.5.2.1
+version:     0.6.0.0
 synopsis:    Total recursion schemes.
 description: Recursion schemes allow you to separate recursion from your
              business logic – making your own operations simpler, more modular,
@@ -149,7 +149,7 @@
     -- 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
+    cabal-doctest ^>= {1.0.0},
 
 library
   import: defaults
@@ -167,16 +167,25 @@
   other-modules:
     Yaya.Fold.Native.Internal
   build-depends:
-    comonad,
-    either,
-    free,
-    kan-extensions,
-    lens,
-    profunctors,
-    strict,
-    template-haskell,
-    th-abstraction,
-    transformers,
+    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
@@ -186,7 +195,9 @@
     -trust containers
     -trust distributive
     -trust exceptions
+    -trust foldable1-classes-compat
     -trust ghc-prim
+    -trust hashable
     -trust lens
     -trust profunctors
     -trust semigroupoids
@@ -194,9 +205,6 @@
     -trust template-haskell
     -trust text
     -trust transformers-compat
-  if impl(ghc < 9.6)
-    ghc-options:
-      -trust foldable1-classes-compat
 
 test-suite doctests
   import: defaults
@@ -204,7 +212,7 @@
   hs-source-dirs: tests
   main-is: doctests.hs
   build-depends:
-    doctest ^>= {0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0},
+    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
