diff --git a/Codec/Archive/Tar/Read.hs b/Codec/Archive/Tar/Read.hs
--- a/Codec/Archive/Tar/Read.hs
+++ b/Codec/Archive/Tar/Read.hs
@@ -252,7 +252,9 @@
     return        = pure
     Error m >>= _ = Error m
     Ok    x >>= k = k x
+#if !MIN_VERSION_base(4,13,0)
     fail          = error "fail @(Partial e)"
+#endif
 
 {-# SPECIALISE readOct :: BS.ByteString -> Maybe Int   #-}
 {-# SPECIALISE readOct :: BS.ByteString -> Maybe Int64 #-}
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+See also http://pvp.haskell.org/faq
+
+0.5.1.1 Herbert Valerio Riedel <hvr@gnu.org> March 2018
+
+  * Add support for GHC 8.8.1 / base-4.13
+
 0.5.1.0 Herbert Valerio Riedel <hvr@gnu.org> March 2018
 
   * Add support for GHC 8.4.1 / base-4.11
diff --git a/tar.cabal b/tar.cabal
--- a/tar.cabal
+++ b/tar.cabal
@@ -1,5 +1,7 @@
+cabal-version:   1.12
 name:            tar
-version:         0.5.1.0
+version:         0.5.1.1
+
 license:         BSD3
 license-file:    LICENSE
 author:          Duncan Coutts <duncan@community.haskell.org>
@@ -22,7 +24,6 @@
                  It also provides features for random access to archive
                  content using an index.
 build-type:      Simple
-cabal-version:   >=1.8
 extra-source-files: changelog.md
 tested-with:     GHC==7.0.4, GHC==7.2.2, GHC==7.4.2, GHC==7.6.3,
                  GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
@@ -38,16 +39,17 @@
   default: False
 
 library
-  build-depends: base       == 4.*,
+
+  build-depends: base       >= 4 && < 4.14,
                  filepath             < 1.5,
                  array                < 0.6,
-                 containers >= 0.2 && < 0.6,
+                 containers >= 0.2 && < 0.7,
                  deepseq    >= 1.1 && < 1.5
 
   if flag(old-time)
     build-depends: directory < 1.2, old-time < 1.2
   else
-    build-depends: directory >= 1.2 && < 1.4, time < 1.9
+    build-depends: directory >= 1.2 && < 1.4, time < 1.10
 
   if flag(old-bytestring)
     build-depends: bytestring-builder >= 0.10.4.0.2 && < 0.11, bytestring == 0.9.*
@@ -72,6 +74,13 @@
     Codec.Archive.Tar.Index.StringTable
     Codec.Archive.Tar.Index.IntTrie
 
+  default-language: Haskell2010
+  -- Previously, the package used GHC's default Haskell mode which implies
+  -- NDI; so we keep it transitionally enabled here until we've reviewed the
+  -- code to make sure there isn't any code relies on NDI and keeps compiling
+  -- albeit with different semantics even without NDI
+  default-extensions: NondecreasingIndentation
+
   other-extensions:
     BangPatterns
     CPP
@@ -80,6 +89,7 @@
     PatternGuards
     ScopedTypeVariables
 
+
   ghc-options: -Wall -fno-warn-unused-imports
 
 test-suite properties
@@ -107,6 +117,8 @@
   if !impl(ghc >= 8.0)
     build-depends: semigroups == 0.18.*
 
+  default-language: Haskell2010
+
   hs-source-dirs: . test
 
   main-is: test/Properties.hs
@@ -151,6 +163,8 @@
 
   if !impl(ghc >= 8.0)
     build-depends: semigroups == 0.18.*
+
+  default-language: Haskell2010
 
   -- shared w/ lib:tar component
   other-modules:
