diff --git a/tests/Test/Retrofit.hs b/tests/Test/Retrofit.hs
--- a/tests/Test/Retrofit.hs
+++ b/tests/Test/Retrofit.hs
@@ -6,30 +6,69 @@
 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" System.IO (IO)
-import safe "base" Text.Show (Show)
+import safe "base" Text.Read
+  ( Read (readListPrec, readPrec),
+    readListPrecDefault,
+  )
+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)
+import safe "deriving-compat" Text.Show.Deriving (deriveShow1)
 import safe "hedgehog" Hedgehog (checkParallel, discover)
-import safe "yaya" Yaya.Retrofit (defaultRules, extractPatternFunctor)
+import safe "yaya" Yaya.Retrofit
+  ( defaultRules,
+    extractPatternFunctor,
+    recursiveCompare,
+    recursiveEq,
+    recursiveShowsPrec,
+    steppableReadPrec,
+  )
 
 data DExpr
   = Lit Int
   | Add DExpr DExpr
   | Mult DExpr DExpr
-  deriving stock (Eq, Show)
 
 extractPatternFunctor defaultRules ''DExpr
 
--- -- | This can be derived in this case, but we want to ensure we could define it
--- --   if necessary.
--- instance Eq DExpr where
---   (==) = recursiveEq
+deriving stock instance (Eq a) => Eq (DExprF a)
 
--- -- | This can be derived in this case, but we want to ensure we could define it
--- --   if necessary.
--- instance Show DExpr where
---   showsPrec = recursiveShowsPrec
+deriving stock instance (Ord a) => Ord (DExprF a)
+
+deriving stock instance (Read a) => Read (DExprF a)
+
+deriving stock instance (Show a) => Show (DExprF a)
+
+deriveEq1 ''DExprF
+deriveOrd1 ''DExprF
+deriveRead1 ''DExprF
+deriveShow1 ''DExprF
+
+-- | This can be derived in this case, but we want to ensure we could define it
+--   if necessary.
+instance Eq DExpr where
+  (==) = recursiveEq
+
+-- | This can be derived in this case, but we want to ensure we could define it
+--   if necessary.
+instance Ord DExpr where
+  compare = recursiveCompare
+
+-- | This can be derived in this case, but we want to ensure we could define it
+--   if necessary.
+instance Read DExpr where
+  readPrec = steppableReadPrec
+  readListPrec = readListPrecDefault
+
+-- | This can be derived in this case, but we want to ensure we could define it
+--   if necessary.
+instance Show DExpr where
+  showsPrec = recursiveShowsPrec
 
 tests :: IO Bool
 tests = checkParallel $$discover
diff --git a/yaya-hedgehog.cabal b/yaya-hedgehog.cabal
--- a/yaya-hedgehog.cabal
+++ b/yaya-hedgehog.cabal
@@ -1,7 +1,7 @@
 cabal-version:  3.0
 
 name:        yaya-hedgehog
-version:     0.3.0.0
+version:     0.3.0.1
 synopsis:    Hedgehog testing support for the Yaya recursion scheme
              library.
 description: If you use Yaya in your own code and have tests written
@@ -160,7 +160,7 @@
   build-depends:
     deriving-compat ^>= {0.5.9, 0.6},
     hedgehog ^>= {1.0, 1.1, 1.2, 1.4},
-    yaya ^>= {0.6.0},
+    yaya ^>= {0.5.1, 0.6.0},
   ghc-options:
     -trust adjunctions
     -trust array
@@ -220,7 +220,7 @@
   build-depends:
     deriving-compat ^>= {0.5.9, 0.6},
     hedgehog ^>= {1.0, 1.1, 1.2, 1.4},
-    yaya ^>= {0.6.0},
+    yaya ^>= {0.5.1, 0.6.0},
     yaya-hedgehog,
   ghc-options:
     -rtsopts
