diff --git a/incipit-base.cabal b/incipit-base.cabal
--- a/incipit-base.cabal
+++ b/incipit-base.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.35.2.
+-- This file has been generated from package.yaml by hpack version 0.36.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           incipit-base
-version:        0.6.0.0
+version:        0.6.1.0
 synopsis:       A Prelude for Polysemy – Base Reexports
 description:    See https://hackage.haskell.org/package/incipit-base/docs/IncipitBase.html
 category:       Prelude
@@ -113,10 +113,10 @@
       NoFieldSelectors
   ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-type-patterns -Wunused-packages
   build-depends:
-      base >=4.13 && <4.20
-    , bytestring
-    , containers
-    , data-default ==0.7.*
-    , stm
-    , text
+      base >=4.16.4.0 && <4.21
+    , bytestring >=0.11.1.0 && <0.13
+    , containers >=0.6.3.1 && <0.8
+    , data-default >=0.2 && <0.8
+    , stm >=2.5.0.2 && <2.6
+    , text >=1.2.5.0 && <2.2
   default-language: GHC2021
diff --git a/lib/Incipit/Base.hs b/lib/Incipit/Base.hs
--- a/lib/Incipit/Base.hs
+++ b/lib/Incipit/Base.hs
@@ -1,3 +1,5 @@
+{-# language CPP #-}
+
 -- |Reexports from @base@.
 module Incipit.Base (
   module Control.Applicative,
@@ -32,6 +34,9 @@
   module Data.Traversable,
   module Data.Tuple,
   module Data.Typeable,
+#if __GLASGOW_HASKELL__ >= 904
+  module Data.Type.Equality,
+#endif
   module Data.Void,
   module Data.Word,
   module GHC.Base,
@@ -156,6 +161,9 @@
 import Data.Semigroup (Semigroup (..))
 import Data.Traversable (Traversable (..), for, forM, mapAccumL, mapAccumR)
 import Data.Tuple (curry, fst, snd, swap, uncurry)
+#if __GLASGOW_HASKELL__ >= 904
+import Data.Type.Equality (type (~))
+#endif
 import Data.Typeable (Typeable)
 import Data.Void (Void)
 import Data.Word (Word, Word16, Word32, Word64, Word8)
diff --git a/lib/Incipit/String/Reexport.hs b/lib/Incipit/String/Reexport.hs
--- a/lib/Incipit/String/Reexport.hs
+++ b/lib/Incipit/String/Reexport.hs
@@ -1,4 +1,5 @@
 {-# options_haddock prune #-}
+{-# language CPP #-}
 
 {- |
 Copyright:  (c) 2016 Stephen Diehl
@@ -47,6 +48,9 @@
 import Text.Read (Read, readMaybe, reads)
 
 import Incipit.Base (Constraint, Type)
+#if __GLASGOW_HASKELL__ >= 904
+import Incipit.Base (type (~))
+#endif
 
 
 -- $setup
diff --git a/lib/Incipit/TypeError.hs b/lib/Incipit/TypeError.hs
--- a/lib/Incipit/TypeError.hs
+++ b/lib/Incipit/TypeError.hs
@@ -1,4 +1,7 @@
-{-# language StandaloneKindSignatures #-}
+{-# language StandaloneKindSignatures, CPP #-}
+#if __GLASGOW_HASKELL__ >= 910
+{-# language TypeAbstractions #-}
+#endif
 
 -- | Description: 'ErrorMessage' concatenation operators, stolen from type-errors-pretty.
 module Incipit.TypeError where
@@ -28,5 +31,9 @@
 
 -- | Placeholder similar to 'IncipitBase.undefined'.
 type Undefined :: k
+#if __GLASGOW_HASKELL__ >= 910
+type family Undefined @k where
+#else
 type family Undefined where
+#endif
   Undefined = TypeError ('Text "undefined")
