diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,8 @@
+## 0.6.2
+
+- Drop support for GHC prior 8.6.5
+- Use `Cabal-syntax-3.12`
+
 ## 0.6.1
 
 - Use `Cabal-syntax-3.10`
diff --git a/cabal-install-parsers.cabal b/cabal-install-parsers.cabal
--- a/cabal-install-parsers.cabal
+++ b/cabal-install-parsers.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               cabal-install-parsers
-version:            0.6.1.1
+version:            0.6.2
 synopsis:           Utilities to work with cabal-install files
 description:
   @cabal-install-parsers@ provides parsers for @cabal-install@ files:
@@ -25,16 +25,15 @@
 category:           Development
 build-type:         Simple
 tested-with:
-  GHC ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
+  GHC ==8.6.5
    || ==8.8.4
    || ==8.10.7
    || ==9.0.2
    || ==9.2.8
    || ==9.4.8
-   || ==9.6.4
-   || ==9.8.1
+   || ==9.6.5
+   || ==9.8.2
+   || ==9.10.1
 
 extra-source-files:
   Changelog.md
@@ -67,14 +66,14 @@
 
   -- GHC-boot libraries
   build-depends:
-    , base          >=4.10      && <4.20
-    , binary        ^>=0.8.5
-    , bytestring    ^>=0.10.8.1 || ^>=0.11.1.0 || ^>=0.12.0.2
-    , Cabal-syntax  ^>=3.10.1.0
-    , containers    ^>=0.5.7.1  || ^>=0.6.0.1
+    , base          >=4.12      && <4.21
+    , binary        ^>=0.8.6.0
+    , bytestring    ^>=0.10.8.2 || ^>=0.11.1.0 || ^>=0.12.0.2
+    , Cabal-syntax  ^>=3.12.0.0
+    , containers    ^>=0.6.0.1  || ^>=0.7
     , deepseq       ^>=1.4.2.0  || ^>=1.5.0.0
     , directory     ^>=1.3.0.0
-    , filepath      ^>=1.4.1.1
+    , filepath      ^>=1.4.1.1  || ^>=1.5.2.0
     , parsec        ^>=3.1.13.0
     , pretty        ^>=1.1.3.3
     , text          ^>=1.2.3.0  || ^>=2.0.1    || ^>=2.1
@@ -131,7 +130,7 @@
 
   -- dependencies needing explicit constraints
   build-depends:
-    , ansi-terminal  >=1.0      && <1.1
+    , ansi-terminal  >=1.0      && <1.2
     , tasty          ^>=1.4     || ^>=1.5
     , tasty-golden   ^>=2.3.1.1
     , tree-diff      >=0.2      && <0.4
diff --git a/src/Cabal/Config.hs b/src/Cabal/Config.hs
--- a/src/Cabal/Config.hs
+++ b/src/Cabal/Config.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                  #-}
 {-# LANGUAGE DeriveGeneric        #-}
 {-# LANGUAGE OverloadedStrings    #-}
 {-# LANGUAGE StandaloneDeriving   #-}
@@ -22,7 +23,6 @@
 import Data.ByteString          (ByteString)
 import Data.Function            ((&))
 import Data.Functor.Identity    (Identity (..))
-import Data.List                (foldl')
 import Data.List.NonEmpty       (NonEmpty)
 import Data.Map                 (Map)
 import Data.Maybe               (fromMaybe)
@@ -32,6 +32,10 @@
 import System.Directory         (getAppUserDataDirectory)
 import System.Environment       (lookupEnv)
 import System.FilePath          ((</>))
+
+#if !MIN_VERSION_base(4,20,0)
+import Data.Foldable (foldl')
+#endif
 
 import qualified Data.ByteString               as BS
 import qualified Data.Map.Strict               as M
diff --git a/src/Cabal/Project.hs b/src/Cabal/Project.hs
--- a/src/Cabal/Project.hs
+++ b/src/Cabal/Project.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE DeriveFoldable    #-}
 {-# LANGUAGE DeriveFunctor     #-}
 {-# LANGUAGE DeriveGeneric     #-}
@@ -34,7 +35,7 @@
 import Data.Foldable              (toList)
 import Data.Function              ((&))
 import Data.Functor               (void)
-import Data.List                  (foldl', isSuffixOf)
+import Data.List                  (isSuffixOf)
 import Data.List.NonEmpty         (NonEmpty)
 import Data.Maybe                 (mapMaybe)
 import Data.Traversable           (for)
@@ -44,6 +45,10 @@
 import Network.URI                (URI (URI), parseURI)
 import System.Directory           (doesDirectoryExist, doesFileExist)
 import System.FilePath            (isAbsolute, normalise, splitDirectories, splitDrive, takeDirectory, (</>))
+
+#if !MIN_VERSION_base(4,20,0)
+import Data.Foldable (foldl')
+#endif
 
 import qualified Data.ByteString                 as BS
 import qualified Data.Map.Strict                 as M
