diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,11 @@
+5.5.12 [2022.05.07]
+-------------------
+* Backport an upstream GHC change which removes the default implementation of
+  `bitraverse`. Per the discussion in
+  https://github.com/haskell/core-libraries-committee/issues/47, this default
+  implementation was completely broken, as attempting to use it would always
+  result in an infinite loop.
+
 5.5.11 [2021.04.30]
 -------------------
 * Allow building with `template-haskell-2.18` (GHC 9.2).
diff --git a/bifunctors.cabal b/bifunctors.cabal
--- a/bifunctors.cabal
+++ b/bifunctors.cabal
@@ -1,6 +1,6 @@
 name:          bifunctors
 category:      Data, Functors
-version:       5.5.11
+version:       5.5.12
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
@@ -24,8 +24,9 @@
              , GHC == 8.4.4
              , GHC == 8.6.5
              , GHC == 8.8.4
-             , GHC == 8.10.4
-             , GHC == 9.0.1
+             , GHC == 8.10.7
+             , GHC == 9.0.2
+             , GHC == 9.2.2
 extra-source-files:
   CHANGELOG.markdown
   README.markdown
@@ -62,10 +63,10 @@
     containers          >= 0.2   && < 0.7,
     template-haskell    >= 2.4   && < 2.19,
     th-abstraction      >= 0.4.2.0 && < 0.5,
-    transformers        >= 0.3   && < 0.6
+    transformers        >= 0.3   && < 0.7
 
   if !impl(ghc > 8.2)
-    build-depends: transformers-compat >= 0.5 && < 0.7
+    build-depends: transformers-compat >= 0.5 && < 0.8
 
   if !impl(ghc >= 8.0)
     build-depends: fail == 4.9.*
diff --git a/old-src/ghc801/Data/Bitraversable.hs b/old-src/ghc801/Data/Bitraversable.hs
--- a/old-src/ghc801/Data/Bitraversable.hs
+++ b/old-src/ghc801/Data/Bitraversable.hs
@@ -141,8 +141,6 @@
   --
   -- For a version that ignores the results, see 'bitraverse_'.
   bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> t a b -> f (t c d)
-  bitraverse f g = bisequenceA . bimap f g
-  {-# INLINE bitraverse #-}
 
 
 -- | Sequences all the actions in a structure, building a new structure with the
diff --git a/tests/BifunctorSpec.hs b/tests/BifunctorSpec.hs
--- a/tests/BifunctorSpec.hs
+++ b/tests/BifunctorSpec.hs
@@ -8,6 +8,7 @@
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE UndecidableInstances #-}
 #if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE EmptyCase #-}
