diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,52 @@
+## Changes in 0.11.0 [2019.09.06]
+ - Sync with `base-4.13`/GHC 8.8
+ - Backport `MonadFail(fail)` to `Prelude.Compat` and `Control.Monad.Compat`.
+
+   Because `Prelude.Compat.fail` now corresponds to the `fail` from `MonadFail`
+   instead of `Monad`, some care is required to implement `Monad.fail` on
+   pre-8.8 versions of GHC. The following template is recommended:
+
+   ```haskell
+   import Prelude.Compat
+   import qualified Control.Monad      as Monad
+   import qualified Control.Monad.Fail as Fail
+
+   data Blah a = ...
+
+   instance Functor Blah where ...
+   instance Applicative Blah where ...
+
+   instance Monad.Monad Blah where
+     (>>=) = ...
+   #if !(MIN_VERSION_base(4,13,0))
+     fail = Fail.fail
+   #endif
+
+   instance Fail.MonadFail Blah where
+     fail = ...
+   ```
+
+   This approach is also backwards-compatible with previous releases of
+   `base-compat`.
+
+   Note that the `MonadFail` class has only been in `base` since
+   `base-4.9`/GHC 8.0, so accordingly, this can only be backported back
+   to GHC 8.0. If you wish to have a version of
+   `Prelude.Compat`/`Control.Monad.Compat` that backports
+   `MonadFail` to older GHCs (by conditionally depending on the `fail`
+   library), use the `Prelude.Compat`/`Control.Monad.Compat` modules from the
+   `base-compat-batteries` package.
+
+ - Introduce the `Data.Type.Equality.Compat` module, which re-exports
+   `Data.Type.Equality` if using `base-4.7`/GHC-7.8 or later. If using an older
+   version of `base`, this module is empty.
+
+   If you wish to have a version of
+   `Data.Type.Equality.Compat` with older GHCs
+   (by conditionally depending on the `type-equality` library),
+   use the `Data.Type.Equality.Compat` module from the
+   `base-compat-batteries` package.
+
 ## Changes in 0.10.5 [2018.10.18]
  - Enable `BangPatterns` in `Prelude.Compat`.
 
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -302,6 +302,11 @@
 
 ## Supported versions of GHC/`base`
 
+ * `ghc-8.8.1`  / `base-4.13.0.0`
+ * `ghc-8.6.5`  / `base-4.12.0.0`
+ * `ghc-8.6.4`  / `base-4.12.0.0`
+ * `ghc-8.6.3`  / `base-4.12.0.0`
+ * `ghc-8.6.2`  / `base-4.12.0.0`
  * `ghc-8.6.1`  / `base-4.12.0.0`
  * `ghc-8.4.4`  / `base-4.11.1.0`
  * `ghc-8.4.3`  / `base-4.11.1.0`
diff --git a/base-compat.cabal b/base-compat.cabal
--- a/base-compat.cabal
+++ b/base-compat.cabal
@@ -1,5 +1,5 @@
 name:             base-compat
-version:          0.10.5
+version:          0.11.0
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2018 Simon Hengel,
@@ -53,6 +53,7 @@
                   , GHC == 8.2.*
                   , GHC == 8.4.*
                   , GHC == 8.6.*
+                  , GHC == 8.8.*
 extra-source-files: CHANGES.markdown, README.markdown
 
 source-repository head
@@ -110,6 +111,7 @@
       Data.STRef.Compat
       Data.String.Compat
       Data.Type.Coercion.Compat
+      Data.Type.Equality.Compat
       Data.Version.Compat
       Data.Void.Compat
       Data.Word.Compat
@@ -167,6 +169,7 @@
       Data.STRef.Compat.Repl
       Data.String.Compat.Repl
       Data.Type.Coercion.Compat.Repl
+      Data.Type.Equality.Compat.Repl
       Data.Version.Compat.Repl
       Data.Void.Compat.Repl
       Data.Word.Compat.Repl
diff --git a/src/Control/Monad/Compat.hs b/src/Control/Monad/Compat.hs
--- a/src/Control/Monad/Compat.hs
+++ b/src/Control/Monad/Compat.hs
@@ -1,7 +1,11 @@
 {-# LANGUAGE CPP, NoImplicitPrelude #-}
 module Control.Monad.Compat (
   module Base
-, Monad(..)
+, Monad
+#if MIN_VERSION_base(4,9,0)
+, MonadFail
+#endif
+, fail
 , MonadPlus(..)
 #if !(MIN_VERSION_base(4,8,0))
 , foldM
@@ -31,7 +35,8 @@
 ) where
 
 #if MIN_VERSION_base(4,9,0)
-import Control.Monad as Base
+import Control.Monad as Base hiding (fail)
+import Control.Monad.Fail as Base
 #else
 import Control.Monad as Base hiding (
     forever
diff --git a/src/Data/Type/Equality/Compat.hs b/src/Data/Type/Equality/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Type/Equality/Compat.hs
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# LANGUAGE RankNTypes #-}
+#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
+module Data.Type.Equality.Compat (
+#if MIN_VERSION_base(4,7,0)
+  module Base
+#endif
+) where
+
+#if MIN_VERSION_base(4,7,0)
+import Data.Type.Equality as Base
+#endif
diff --git a/src/Data/Type/Equality/Compat/Repl.hs b/src/Data/Type/Equality/Compat/Repl.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Type/Equality/Compat/Repl.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.Type.Equality.Compat"
+-- from a globally unique namespace.
+module Data.Type.Equality.Compat.Repl (
+  module Data.Type.Equality.Compat
+) where
+import "this" Data.Type.Equality.Compat
diff --git a/src/Prelude/Compat.hs b/src/Prelude/Compat.hs
--- a/src/Prelude/Compat.hs
+++ b/src/Prelude/Compat.hs
@@ -235,6 +235,9 @@
 , Functor
 , Integral
 , Monad
+#if MIN_VERSION_base(4,9,0)
+, MonadFail
+#endif
 , Monoid
 , Num (fromInteger)
 , Ord
@@ -274,10 +277,14 @@
 
 #if MIN_VERSION_base(4,9,0)
 
-import Prelude as Base
-# if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,12,0))
-  hiding (($!))
+import Prelude as Base hiding (
+# if !(MIN_VERSION_base(4,13,0))
+    fail
+#  if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,12,0))
+  , ($!)
+#  endif
 # endif
+  )
 
 #else
 
@@ -320,6 +327,10 @@
 
 #if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,11,0))
 import Data.Semigroup as Base (Semigroup((<>)))
+#endif
+
+#if MIN_VERSION_base(4,9,0) && !(MIN_VERSION_base(4,13,0))
+import Control.Monad.Fail as Base (MonadFail(fail))
 #endif
 
 #if MIN_VERSION_base(4,10,0) && !(MIN_VERSION_base(4,12,0))
