diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,10 @@
+## 0.5
+
+- Move to use `Cabal-syntax` package
+  It's possible to have a build-plan with (old) `Cabal`,
+  and new `cabal-install` syntax, which may cause
+  `...Version` is not `...Version` like errors.
+
 ## 0.4.5
 
 - Resolve `.tar.gz` package files to `file:` URI-locations
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.4.5
+version:            0.5
 synopsis:           Utilities to work with cabal-install files
 description:
   @cabal-install-parsers@ provides parsers for @cabal-install@ files:
@@ -21,7 +21,7 @@
 category:           Development
 build-type:         Simple
 tested-with:
-  GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 || ==8.10.7 || ==9.0.2 || ==9.2.1
+  GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.1
 
 extra-source-files:
   Changelog.md
@@ -54,23 +54,23 @@
 
   -- GHC-boot libraries
   build-depends:
-    , base          >=4.10     && <4.17
+    , base          >=4.10     && <4.18
     , binary        ^>=0.8.5
     , bytestring    ^>=0.10.8.1 || ^>=0.11.1.0
-    , Cabal         ^>=3.6.0.0
+    , Cabal-syntax  ^>=3.8.1.0
     , containers    ^>=0.5.7.1 || ^>=0.6.0.1
     , deepseq       ^>=1.4.2.0
     , directory     ^>=1.3.0.0
     , filepath      ^>=1.4.1.1
     , parsec        ^>=3.1.13.0
     , pretty        ^>=1.1.3.3
-    , text          ^>=1.2.3.0
-    , time          ^>=1.8.0.2 || ^>=1.9.3 || ^>=1.11.1.1
+    , text          ^>=1.2.3.0 || ^>=2.0.1
+    , time          ^>=1.8.0.2 || ^>=1.9.3 || ^>=1.11.1.1 || ^>=1.12.2
     , transformers  ^>=0.5.2.0
 
   -- extra dependencies
   build-depends:
-    , aeson              ^>=1.4.6.0 || ^>=1.5.0.0 || ^>=2.0.0.0
+    , aeson              ^>=2.1.0.0
     , base16-bytestring  ^>=1.0.0.0
     , binary-instances   ^>=1
     , cryptohash-sha256  ^>=0.11.101.0
@@ -92,14 +92,14 @@
     , base
     , base16-bytestring
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , cabal-install-parsers
     , containers
     , tar
 
   -- dependencies needing explicit constraints
   build-depends:
-    , tasty        ^>=1.2.3 || ^>=1.3.1 || ^>=1.4
+    , tasty        ^>=1.4
     , tasty-hunit  ^>=0.10.0.2
 
 test-suite cabal-parsers-golden
@@ -112,7 +112,7 @@
   build-depends:
     , base
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , cabal-install-parsers
     , containers
     , directory
@@ -122,7 +122,7 @@
   -- dependencies needing explicit constraints
   build-depends:
     , ansi-terminal  >=0.10    && <0.12
-    , tasty          ^>=1.2.3 || ^>=1.3.1 || ^>=1.4
+    , tasty          ^>=1.4
     , tasty-golden   ^>=2.3.1.1
     , tree-diff      ^>=0.2
 
@@ -136,11 +136,11 @@
   build-depends:
     , base
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , cabal-install-parsers
     , containers
     , directory
     , filepath
 
   -- dependencies needing explicit constraints
-  build-depends:    criterion ^>=1.5.6.1
+  build-depends:    criterion ^>=1.6.0.0
diff --git a/src/Cabal/Config.hs b/src/Cabal/Config.hs
--- a/src/Cabal/Config.hs
+++ b/src/Cabal/Config.hs
@@ -33,13 +33,13 @@
 import System.Environment       (lookupEnv)
 import System.FilePath          ((</>))
 
-import qualified Data.ByteString                    as BS
-import qualified Data.Map.Strict                    as M
-import qualified Distribution.CabalSpecVersion      as C
-import qualified Distribution.FieldGrammar          as C
-import qualified Distribution.Fields                as C
-import qualified Distribution.Parsec                as C
-import qualified Distribution.Simple.Utils          as C
+import qualified Data.ByteString               as BS
+import qualified Data.Map.Strict               as M
+import qualified Distribution.CabalSpecVersion as C
+import qualified Distribution.FieldGrammar     as C
+import qualified Distribution.Fields           as C
+import qualified Distribution.Parsec           as C
+import qualified Distribution.Utils.Generic    as C
 
 import Cabal.Internal.Newtypes
 import Cabal.Parse
diff --git a/src/Cabal/Index.hs b/src/Cabal/Index.hs
--- a/src/Cabal/Index.hs
+++ b/src/Cabal/Index.hs
@@ -40,7 +40,7 @@
 import Prelude hiding (pi)
 
 import Control.Exception (Exception, IOException, bracket, evaluate, handle, throwIO)
-import Data.Bits         (shiftL, (.|.), shiftR, (.&.))
+import Data.Bits         (shiftL, shiftR, (.&.), (.|.))
 import Data.ByteString   (ByteString)
 import Data.Int          (Int64)
 import Data.Map.Strict   (Map)
@@ -68,7 +68,7 @@
 import qualified Distribution.Parsec                 as C
 import qualified Distribution.Parsec.FieldLineStream as C
 import qualified Distribution.Pretty                 as C
-import qualified Distribution.Simple.Utils           as C
+import qualified Distribution.Utils.Generic          as C
 import qualified Distribution.Version                as C
 import qualified Lukko
 import qualified System.Directory                    as D
diff --git a/src/Cabal/Parse.hs b/src/Cabal/Parse.hs
--- a/src/Cabal/Parse.hs
+++ b/src/Cabal/Parse.hs
@@ -10,15 +10,15 @@
     renderParseError,
     ) where
 
-import Control.DeepSeq           (NFData (..))
-import Control.Exception         (Exception (..))
-import Data.ByteString           (ByteString)
-import Data.Foldable             (for_)
-import Data.List.NonEmpty        (NonEmpty)
-import Data.Typeable             (Typeable)
-import Distribution.Simple.Utils (fromUTF8BS)
-import GHC.Generics              (Generic)
-import System.FilePath           (normalise)
+import Control.DeepSeq            (NFData (..))
+import Control.Exception          (Exception (..))
+import Data.ByteString            (ByteString)
+import Data.Foldable              (for_)
+import Data.List.NonEmpty         (NonEmpty)
+import Data.Typeable              (Typeable)
+import Distribution.Utils.Generic (fromUTF8BS)
+import GHC.Generics               (Generic)
+import System.FilePath            (normalise)
 
 import qualified Data.ByteString.Char8          as BS8
 import qualified Distribution.Fields            as C
diff --git a/src/Cabal/Project.hs b/src/Cabal/Project.hs
--- a/src/Cabal/Project.hs
+++ b/src/Cabal/Project.hs
@@ -152,6 +152,7 @@
         rnfList f (x:xs) = f x `seq` rnfList f xs
 
         rnfPrettyField :: NFData x => C.PrettyField x -> ()
+        rnfPrettyField C.PrettyEmpty = ()
         rnfPrettyField (C.PrettyField ann fn d) =
             rnf ann `seq` rnf fn `seq` rnf d
         rnfPrettyField (C.PrettySection ann fn ds fs) =
@@ -161,7 +162,7 @@
 -- Initial  parsing
 -------------------------------------------------------------------------------
 
--- | High level conviniene function to read and elaborate @cabal.project@ files
+-- | High level convenience function to read and elaborate @cabal.project@ files
 --
 -- May throw 'IOException' when file doesn't exist, 'ParseError'
 -- on parse errors, or 'ResolveError' on package resolution error.
