diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,16 @@
 Change Log
 ==========
 
+Version 0.8.0.7 (2019-08-05) *Independence Day in Burkina Faso*
+---------------------------------------------------------------
+
+#### Package changes
+
+* Add `MonadFail` instance for GHC >= 8.8
+  ([Vanessa McHale](https://github.com/vmchale))
+* Change `deepseq` upper bound to 1.5
+  ([Herbert Valerio Riedel](https://github.com/hvr))
+
 Version 0.8.0.6 (2019-03-29) *Martyrs' Day in Madagascar*
 ---------------------------------------------------------
 
diff --git a/Data/DList.hs b/Data/DList.hs
--- a/Data/DList.hs
+++ b/Data/DList.hs
@@ -78,7 +78,10 @@
 
 #if MIN_VERSION_base(4,9,0)
 import Data.Semigroup (Semigroup(..))
+#if !MIN_VERSION_base(4,13,0)
+import Control.Monad.Fail (MonadFail(..))
 #endif
+#endif
 
 #ifdef __GLASGOW_HASKELL__
 
@@ -278,8 +281,16 @@
   return   = pure
   {-# INLINE return #-}
 
+#if !MIN_VERSION_base(4,13,0)
   fail _   = empty
   {-# INLINE fail #-}
+#endif
+
+#if MIN_VERSION_base(4,9,0)
+instance MonadFail DList where
+  fail _ = empty
+  {-# INLINE fail #-}
+#endif
 
 instance MonadPlus DList where
   mzero    = empty
diff --git a/dlist.cabal b/dlist.cabal
--- a/dlist.cabal
+++ b/dlist.cabal
@@ -1,5 +1,5 @@
 name:                   dlist
-version:                0.8.0.6
+version:                0.8.0.7
 synopsis:               Difference lists
 description:
   Difference lists are a list-like type supporting O(1) append. This is
@@ -23,7 +23,11 @@
                         GHC==7.6.3
                         GHC==7.8.4
                         GHC==7.10.3
-                        GHC==8.0.1
+                        GHC==8.0.2
+                        GHC==8.2.2
+                        GHC==8.4.4
+                        GHC==8.6.5
+                        GHC==8.8.1
 
 source-repository head
   type:                 git
@@ -32,7 +36,7 @@
 library
   build-depends:
                         base >= 4 && < 5,
-                        deepseq >= 1.1 && < 2
+                        deepseq >= 1.1 && < 1.5
   extensions:           CPP
   exposed-modules:      Data.DList
   ghc-options:          -Wall
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -98,6 +98,9 @@
     f :: DList Int -> DList Int
     f = id
 
+prop_fail :: String -> Bool
+prop_fail str = fail str == (empty :: DList ())
+
 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708
 -- | Test that the IsList instance methods compile and work with simple lists
 prop_IsList :: Bool
@@ -156,6 +159,7 @@
   , ("replicate",         property prop_replicate)
   , ("head",              property prop_head)
   , ("tail",              property prop_tail)
+  , ("fail",              property prop_fail)
   , ("unfoldr",           property prop_unfoldr)
   , ("foldr",             property prop_foldr)
   , ("map",               property prop_map)
