diff --git a/Cabal-QuickCheck/Cabal-QuickCheck.cabal b/Cabal-QuickCheck/Cabal-QuickCheck.cabal
index 0f4d2d0c34eea411f0074d9aea3c57e5aa3a707d..da2042de81681180520b54c6cdc9e99131f8cc9a 100644
--- a/Cabal-QuickCheck/Cabal-QuickCheck.cabal
+++ b/Cabal-QuickCheck/Cabal-QuickCheck.cabal
@@ -13,8 +13,9 @@ library
   build-depends:
     , base
     , bytestring
-    , Cabal       ^>=3.7.0.0
-    , QuickCheck  ^>=2.13.2 || ^>=2.14
+    , Cabal         ^>=3.7.0.0
+    , Cabal-syntax  ^>=3.7.0.0
+    , QuickCheck    ^>=2.13.2 || ^>=2.14
 
   if !impl(ghc >= 8.0)
     build-depends: semigroups
diff --git a/Cabal-described/Cabal-described.cabal b/Cabal-described/Cabal-described.cabal
index 92344b62183497960f4c0e07a365b98354097cea..de7a1f4e66ea764bc6caf31363945afafb46cd45 100644
--- a/Cabal-described/Cabal-described.cabal
+++ b/Cabal-described/Cabal-described.cabal
@@ -12,6 +12,7 @@ library
   build-depends:
     , base
     , Cabal             ^>=3.7.0.0
+    , Cabal-syntax      ^>=3.7.0.0
     , containers
     , pretty
     , QuickCheck
diff --git a/Cabal-syntax/Cabal-syntax.cabal b/Cabal-syntax/Cabal-syntax.cabal
new file mode 100644
index 0000000000000000000000000000000000000000..91181e13efc6e618f0d8d125cc1ec75d686b60ba
--- /dev/null
+++ b/Cabal-syntax/Cabal-syntax.cabal
@@ -0,0 +1,251 @@
+cabal-version: >=1.10
+name:          Cabal-syntax
+version:       3.7.0.0
+copyright:     2003-2021, Cabal Development Team (see AUTHORS file)
+license:       BSD3
+license-file:  LICENSE
+author:        Cabal Development Team <cabal-devel@haskell.org>
+maintainer:    cabal-devel@haskell.org
+homepage:      http://www.haskell.org/cabal/
+bug-reports:   https://github.com/haskell/cabal/issues
+synopsis:      A library for working with .cabal files
+description:
+    This library provides tools for reading and manipulating the .cabal file
+    format.
+category:       Distribution
+build-type:     Simple
+
+extra-source-files:
+  README.md ChangeLog.md
+
+source-repository head
+  type:     git
+  location: https://github.com/haskell/cabal/
+  subdir:   Cabal-syntax
+
+flag bundled-binary-generic
+  default: False
+
+library
+  default-language: Haskell2010
+  hs-source-dirs: src
+
+  build-depends:
+    array      >= 0.4.0.1  && < 0.6,
+    base       >= 4.6      && < 5,
+    bytestring >= 0.10.0.0 && < 0.12,
+    containers >= 0.5.0.0  && < 0.7,
+    deepseq    >= 1.3.0.1  && < 1.5,
+    directory  >= 1.2      && < 1.4,
+    filepath   >= 1.3.0.1  && < 1.5,
+    mtl        >= 2.1      && < 2.3,
+    parsec     >= 3.1.13.0 && < 3.2,
+    pretty     >= 1.1.1    && < 1.2,
+    text       (>= 1.2.3.0 && < 1.3) || (>= 2.0 && < 2.1),
+    time       >= 1.4.0.1  && < 1.13,
+    -- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
+    -- See also https://github.com/ekmett/transformers-compat/issues/35
+    transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.6)
+
+  if flag(bundled-binary-generic)
+    build-depends: binary >= 0.5.1.1 && < 0.7
+  else
+    build-depends: binary >= 0.7 && < 0.9
+
+  if os(windows)
+    build-depends: Win32 >= 2.3.0.0 && < 2.13
+  else
+    build-depends: unix  >= 2.6.0.0 && < 2.8
+
+  ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates
+  if impl(ghc >= 8.0)
+    ghc-options: -Wcompat -Wnoncanonical-monad-instances
+
+    if impl(ghc <8.8)
+      ghc-options: -Wnoncanonical-monadfail-instances
+
+  if !impl(ghc >= 8.0)
+    -- at least one of lib:Cabal's dependency (i.e. `parsec`)
+    -- already depends on `fail` and `semigroups` transitively
+    build-depends: fail == 4.9.*, semigroups >= 0.18.3 && < 0.20
+
+  if !impl(ghc >= 7.10)
+    build-depends: void >= 0.7.3 && < 0.8
+
+  if !impl(ghc >= 7.8)
+    -- semigroups depends on tagged.
+    build-depends:  tagged >=0.8.6 && <0.9, bytestring-builder >= 0.10.8 && <0.11
+
+  exposed-modules:
+    Distribution.Backpack
+    Distribution.CabalSpecVersion
+    Distribution.Compat.Binary
+    Distribution.Compat.CharParsing
+    Distribution.Compat.DList
+    Distribution.Compat.Exception
+    Distribution.Compat.Graph
+    Distribution.Compat.Lens
+    Distribution.Compat.MonadFail
+    Distribution.Compat.Newtype
+    Distribution.Compat.NonEmptySet
+    Distribution.Compat.Parsing
+    Distribution.Compat.Prelude
+    Distribution.Compat.Semigroup
+    Distribution.Compat.Typeable
+    Distribution.Compiler
+    Distribution.FieldGrammar
+    Distribution.FieldGrammar.Class
+    Distribution.FieldGrammar.FieldDescrs
+    Distribution.FieldGrammar.Newtypes
+    Distribution.FieldGrammar.Parsec
+    Distribution.FieldGrammar.Pretty
+    Distribution.Fields
+    Distribution.Fields.ConfVar
+    Distribution.Fields.Field
+    Distribution.Fields.Lexer
+    Distribution.Fields.LexerMonad
+    Distribution.Fields.ParseResult
+    Distribution.Fields.Parser
+    Distribution.Fields.Pretty
+    Distribution.InstalledPackageInfo
+    Distribution.License
+    Distribution.ModuleName
+    Distribution.Package
+    Distribution.PackageDescription
+    Distribution.PackageDescription.Configuration
+    Distribution.PackageDescription.FieldGrammar
+    Distribution.PackageDescription.Parsec
+    Distribution.PackageDescription.PrettyPrint
+    Distribution.PackageDescription.Quirks
+    Distribution.PackageDescription.Utils
+    Distribution.Parsec
+    Distribution.Parsec.Error
+    Distribution.Parsec.FieldLineStream
+    Distribution.Parsec.Position
+    Distribution.Parsec.Warning
+    Distribution.Pretty
+    Distribution.SPDX
+    Distribution.SPDX.License
+    Distribution.SPDX.LicenseExceptionId
+    Distribution.SPDX.LicenseExpression
+    Distribution.SPDX.LicenseId
+    Distribution.SPDX.LicenseListVersion
+    Distribution.SPDX.LicenseReference
+    Distribution.System
+    Distribution.Text
+    Distribution.Types.AbiDependency
+    Distribution.Types.AbiHash
+    Distribution.Types.Benchmark
+    Distribution.Types.Benchmark.Lens
+    Distribution.Types.BenchmarkInterface
+    Distribution.Types.BenchmarkType
+    Distribution.Types.BuildInfo
+    Distribution.Types.BuildInfo.Lens
+    Distribution.Types.BuildType
+    Distribution.Types.Component
+    Distribution.Types.ComponentId
+    Distribution.Types.ComponentName
+    Distribution.Types.ComponentRequestedSpec
+    Distribution.Types.CondTree
+    Distribution.Types.Condition
+    Distribution.Types.ConfVar
+    Distribution.Types.Dependency
+    Distribution.Types.DependencyMap
+    Distribution.Types.ExeDependency
+    Distribution.Types.Executable
+    Distribution.Types.Executable.Lens
+    Distribution.Types.ExecutableScope
+    Distribution.Types.ExposedModule
+    Distribution.Types.Flag
+    Distribution.Types.ForeignLib
+    Distribution.Types.ForeignLib.Lens
+    Distribution.Types.ForeignLibOption
+    Distribution.Types.ForeignLibType
+    Distribution.Types.GenericPackageDescription
+    Distribution.Types.GenericPackageDescription.Lens
+    Distribution.Types.HookedBuildInfo
+    Distribution.Types.IncludeRenaming
+    Distribution.Types.InstalledPackageInfo
+    Distribution.Types.InstalledPackageInfo.Lens
+    Distribution.Types.InstalledPackageInfo.FieldGrammar
+    Distribution.Types.LegacyExeDependency
+    Distribution.Types.Lens
+    Distribution.Types.Library
+    Distribution.Types.Library.Lens
+    Distribution.Types.LibraryName
+    Distribution.Types.LibraryVisibility
+    Distribution.Types.Mixin
+    Distribution.Types.Module
+    Distribution.Types.ModuleReexport
+    Distribution.Types.ModuleRenaming
+    Distribution.Types.MungedPackageId
+    Distribution.Types.MungedPackageName
+    Distribution.Types.PackageDescription
+    Distribution.Types.PackageDescription.Lens
+    Distribution.Types.PackageId
+    Distribution.Types.PackageId.Lens
+    Distribution.Types.PackageName
+    Distribution.Types.PackageVersionConstraint
+    Distribution.Types.PkgconfigDependency
+    Distribution.Types.PkgconfigName
+    Distribution.Types.PkgconfigVersion
+    Distribution.Types.PkgconfigVersionRange
+    Distribution.Types.SetupBuildInfo
+    Distribution.Types.SetupBuildInfo.Lens
+    Distribution.Types.SourceRepo
+    Distribution.Types.SourceRepo.Lens
+    Distribution.Types.TestSuite
+    Distribution.Types.TestSuite.Lens
+    Distribution.Types.TestSuiteInterface
+    Distribution.Types.TestType
+    Distribution.Types.UnitId
+    Distribution.Types.UnqualComponentName
+    Distribution.Types.Version
+    Distribution.Types.VersionInterval
+    Distribution.Types.VersionInterval.Legacy
+    Distribution.Types.VersionRange
+    Distribution.Types.VersionRange.Internal
+    Distribution.Utils.Base62
+    Distribution.Utils.Generic
+    Distribution.Utils.MD5
+    Distribution.Utils.Path
+    Distribution.Utils.ShortText
+    Distribution.Utils.String
+    Distribution.Utils.Structured
+    Distribution.Version
+    Language.Haskell.Extension
+
+  if flag(bundled-binary-generic)
+    exposed-modules:
+      Distribution.Compat.Binary.Class
+      Distribution.Compat.Binary.Generic
+
+  other-extensions:
+    BangPatterns
+    CPP
+    DefaultSignatures
+    DeriveDataTypeable
+    DeriveFoldable
+    DeriveFunctor
+    DeriveGeneric
+    DeriveTraversable
+    ExistentialQuantification
+    FlexibleContexts
+    FlexibleInstances
+    GeneralizedNewtypeDeriving
+    ImplicitParams
+    KindSignatures
+    NondecreasingIndentation
+    OverloadedStrings
+    RankNTypes
+    RecordWildCards
+    ScopedTypeVariables
+    StandaloneDeriving
+    Trustworthy
+    TypeFamilies
+    TypeOperators
+    TypeSynonymInstances
+    UndecidableInstances
+
+  if impl(ghc >= 7.11)
+    other-extensions: PatternSynonyms
diff --git a/Cabal-syntax/ChangeLog.md b/Cabal-syntax/ChangeLog.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Cabal-syntax/LICENSE b/Cabal-syntax/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..d311ab42e100df55e8b9b93cb3cac9f5559b78eb
--- /dev/null
+++ b/Cabal-syntax/LICENSE
@@ -0,0 +1,34 @@
+Copyright (c) 2003-2020, Cabal Development Team.
+See the AUTHORS file for the full list of copyright holders.
+
+See */LICENSE for the copyright holders of the subcomponents.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Isaac Jones nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Cabal-syntax/README.md b/Cabal-syntax/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1ec4f6b47f2933741ad1ad3925fa5f0a221b0738
--- /dev/null
+++ b/Cabal-syntax/README.md
@@ -0,0 +1,67 @@
+The Cabal-syntax package
+========================
+
+See the [Cabal web site] for more information.
+
+The `Cabal-syntax` package defines the syntax of the `.cabal` file format
+and provides tools for parsing `.cabal` files.
+
+More information
+================
+
+Please see the [Cabal web site] for the [user guide] and [API
+documentation]. There is additional information available on the
+[development wiki].
+
+[user guide]:        http://www.haskell.org/cabal/users-guide
+[API documentation]: http://www.haskell.org/cabal/release/cabal-latest/doc/API/Cabal/Distribution-Simple.html
+[development wiki]:  https://github.com/haskell/cabal/wiki
+
+
+Bugs
+====
+
+Please report bugs and feature requests to Cabal's [bug tracker].
+
+
+Your help
+---------
+
+To help Cabal's development, it is enormously helpful to know from
+Cabal's users what their most pressing problems are with Cabal and
+[Hackage]. You may have a favourite Cabal bug or limitation. Look at
+Cabal's [bug tracker]. Ensure that the problem is reported there and
+adequately described. Comment on the issue to report how much of a
+problem the bug is for you. Subscribe to the issues's notifications to
+discussed requirements and keep informed on progress. For feature
+requests, it is helpful if there is a description of how you would
+expect to interact with the new feature.
+
+[Hackage]: http://hackage.haskell.org
+
+
+Source code
+===========
+
+You can get the master development branch using:
+
+    $ git clone https://github.com/haskell/cabal.git
+
+
+Credits
+=======
+
+See the `AUTHORS` file.
+
+Authors of the [original Cabal
+specification](https://www.haskell.org/cabal/proposal/pkg-spec.pdf):
+
+- Isaac Jones
+- Simon Marlow
+- Ross Patterson
+- Simon Peyton Jones
+- Malcolm Wallace
+
+
+[bug tracker]: https://github.com/haskell/cabal/issues
+[Cabal web site]: http://www.haskell.org/cabal/
diff --git a/Cabal-syntax/Setup.hs b/Cabal-syntax/Setup.hs
new file mode 100644
index 0000000000000000000000000000000000000000..b55cb1695392fd9cdb3d8e148e455bc4cfbeb3e2
--- /dev/null
+++ b/Cabal-syntax/Setup.hs
@@ -0,0 +1,3 @@
+import Distribution.Simple
+main :: IO ()
+main = defaultMain
diff --git a/Cabal/src/Distribution/Backpack.hs b/Cabal-syntax/src/Distribution/Backpack.hs
similarity index 100%
rename from Cabal/src/Distribution/Backpack.hs
rename to Cabal-syntax/src/Distribution/Backpack.hs
diff --git a/Cabal/src/Distribution/CabalSpecVersion.hs b/Cabal-syntax/src/Distribution/CabalSpecVersion.hs
similarity index 100%
rename from Cabal/src/Distribution/CabalSpecVersion.hs
rename to Cabal-syntax/src/Distribution/CabalSpecVersion.hs
diff --git a/Cabal/src/Distribution/Compat/Binary.hs b/Cabal-syntax/src/Distribution/Compat/Binary.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Binary.hs
rename to Cabal-syntax/src/Distribution/Compat/Binary.hs
diff --git a/Cabal/src/Distribution/Compat/Binary/Class.hs b/Cabal-syntax/src/Distribution/Compat/Binary/Class.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Binary/Class.hs
rename to Cabal-syntax/src/Distribution/Compat/Binary/Class.hs
diff --git a/Cabal/src/Distribution/Compat/Binary/Generic.hs b/Cabal-syntax/src/Distribution/Compat/Binary/Generic.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Binary/Generic.hs
rename to Cabal-syntax/src/Distribution/Compat/Binary/Generic.hs
diff --git a/Cabal/src/Distribution/Compat/CharParsing.hs b/Cabal-syntax/src/Distribution/Compat/CharParsing.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/CharParsing.hs
rename to Cabal-syntax/src/Distribution/Compat/CharParsing.hs
diff --git a/Cabal/src/Distribution/Compat/DList.hs b/Cabal-syntax/src/Distribution/Compat/DList.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/DList.hs
rename to Cabal-syntax/src/Distribution/Compat/DList.hs
diff --git a/Cabal/src/Distribution/Compat/Exception.hs b/Cabal-syntax/src/Distribution/Compat/Exception.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Exception.hs
rename to Cabal-syntax/src/Distribution/Compat/Exception.hs
diff --git a/Cabal/src/Distribution/Compat/Graph.hs b/Cabal-syntax/src/Distribution/Compat/Graph.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Graph.hs
rename to Cabal-syntax/src/Distribution/Compat/Graph.hs
diff --git a/Cabal/src/Distribution/Compat/Lens.hs b/Cabal-syntax/src/Distribution/Compat/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Lens.hs
rename to Cabal-syntax/src/Distribution/Compat/Lens.hs
diff --git a/Cabal/src/Distribution/Compat/MonadFail.hs b/Cabal-syntax/src/Distribution/Compat/MonadFail.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/MonadFail.hs
rename to Cabal-syntax/src/Distribution/Compat/MonadFail.hs
diff --git a/Cabal/src/Distribution/Compat/Newtype.hs b/Cabal-syntax/src/Distribution/Compat/Newtype.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Newtype.hs
rename to Cabal-syntax/src/Distribution/Compat/Newtype.hs
diff --git a/Cabal/src/Distribution/Compat/NonEmptySet.hs b/Cabal-syntax/src/Distribution/Compat/NonEmptySet.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/NonEmptySet.hs
rename to Cabal-syntax/src/Distribution/Compat/NonEmptySet.hs
diff --git a/Cabal/src/Distribution/Compat/Parsing.hs b/Cabal-syntax/src/Distribution/Compat/Parsing.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Parsing.hs
rename to Cabal-syntax/src/Distribution/Compat/Parsing.hs
diff --git a/Cabal/src/Distribution/Compat/Prelude.hs b/Cabal-syntax/src/Distribution/Compat/Prelude.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Prelude.hs
rename to Cabal-syntax/src/Distribution/Compat/Prelude.hs
diff --git a/Cabal/src/Distribution/Compat/Semigroup.hs b/Cabal-syntax/src/Distribution/Compat/Semigroup.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Semigroup.hs
rename to Cabal-syntax/src/Distribution/Compat/Semigroup.hs
diff --git a/Cabal/src/Distribution/Compat/Typeable.hs b/Cabal-syntax/src/Distribution/Compat/Typeable.hs
similarity index 100%
rename from Cabal/src/Distribution/Compat/Typeable.hs
rename to Cabal-syntax/src/Distribution/Compat/Typeable.hs
diff --git a/Cabal/src/Distribution/Compiler.hs b/Cabal-syntax/src/Distribution/Compiler.hs
similarity index 100%
rename from Cabal/src/Distribution/Compiler.hs
rename to Cabal-syntax/src/Distribution/Compiler.hs
diff --git a/Cabal/src/Distribution/FieldGrammar.hs b/Cabal-syntax/src/Distribution/FieldGrammar.hs
similarity index 100%
rename from Cabal/src/Distribution/FieldGrammar.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar.hs
diff --git a/Cabal/src/Distribution/FieldGrammar/Class.hs b/Cabal-syntax/src/Distribution/FieldGrammar/Class.hs
similarity index 100%
rename from Cabal/src/Distribution/FieldGrammar/Class.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar/Class.hs
diff --git a/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs b/Cabal-syntax/src/Distribution/FieldGrammar/FieldDescrs.hs
similarity index 98%
rename from Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar/FieldDescrs.hs
index af8f8511c731f06d726c67ba26b15050e610fda4..efb6d368f95c58b7edc0b76f854a7b255ec6342f 100644
--- a/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs
+++ b/Cabal-syntax/src/Distribution/FieldGrammar/FieldDescrs.hs
@@ -21,7 +21,7 @@ import Distribution.Pretty         (Pretty (..), showFreeText)
 
 import qualified Data.Map                        as Map
 import qualified Distribution.Compat.CharParsing as C
-import qualified Distribution.Fields.Field       as P
+import qualified Distribution.Fields             as P
 import qualified Distribution.Parsec             as P
 import qualified Text.PrettyPrint                as Disp
 
diff --git a/Cabal/src/Distribution/FieldGrammar/Newtypes.hs b/Cabal-syntax/src/Distribution/FieldGrammar/Newtypes.hs
similarity index 100%
rename from Cabal/src/Distribution/FieldGrammar/Newtypes.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar/Newtypes.hs
diff --git a/Cabal/src/Distribution/FieldGrammar/Parsec.hs b/Cabal-syntax/src/Distribution/FieldGrammar/Parsec.hs
similarity index 99%
rename from Cabal/src/Distribution/FieldGrammar/Parsec.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar/Parsec.hs
index b86c8803e883ba3b251fd31d0108644cba50af65..77a94456acf6e01ab13d3f2d144f5ba098d8ac25 100644
--- a/Cabal/src/Distribution/FieldGrammar/Parsec.hs
+++ b/Cabal-syntax/src/Distribution/FieldGrammar/Parsec.hs
@@ -67,7 +67,7 @@ module Distribution.FieldGrammar.Parsec (
 
 import Distribution.Compat.Newtype
 import Distribution.Compat.Prelude
-import Distribution.Simple.Utils   (fromUTF8BS)
+import Distribution.Utils.Generic  (fromUTF8BS)
 import Distribution.Utils.String (trim)
 import Prelude ()
 
diff --git a/Cabal/src/Distribution/FieldGrammar/Pretty.hs b/Cabal-syntax/src/Distribution/FieldGrammar/Pretty.hs
similarity index 98%
rename from Cabal/src/Distribution/FieldGrammar/Pretty.hs
rename to Cabal-syntax/src/Distribution/FieldGrammar/Pretty.hs
index 7c104d51067a3954d3c19f8382a294e0264b00aa..fdd236b0e9e29e4b8bb3358c6656f2b203152012 100644
--- a/Cabal/src/Distribution/FieldGrammar/Pretty.hs
+++ b/Cabal-syntax/src/Distribution/FieldGrammar/Pretty.hs
@@ -12,7 +12,7 @@ import           Distribution.Compat.Prelude
 import           Distribution.Fields.Field     (FieldName)
 import           Distribution.Fields.Pretty    (PrettyField (..))
 import           Distribution.Pretty           (Pretty (..), showFreeText, showFreeTextV3)
-import           Distribution.Simple.Utils     (toUTF8BS)
+import           Distribution.Utils.Generic    (toUTF8BS)
 import           Prelude ()
 import           Text.PrettyPrint              (Doc)
 import qualified Text.PrettyPrint              as PP
diff --git a/Cabal/src/Distribution/Fields.hs b/Cabal-syntax/src/Distribution/Fields.hs
similarity index 98%
rename from Cabal/src/Distribution/Fields.hs
rename to Cabal-syntax/src/Distribution/Fields.hs
index 0236cf799c213286a9c912389bd6816a3f7a8ac9..88addc88a77cec503d5217fecf2a7375394a4e68 100644
--- a/Cabal/src/Distribution/Fields.hs
+++ b/Cabal-syntax/src/Distribution/Fields.hs
@@ -14,7 +14,6 @@ module Distribution.Fields (
     -- ** ParseResult
     ParseResult,
     runParseResult,
-    parseString,
     parseWarning,
     parseWarnings,
     parseFailure,
diff --git a/Cabal/src/Distribution/Fields/ConfVar.hs b/Cabal-syntax/src/Distribution/Fields/ConfVar.hs
similarity index 100%
rename from Cabal/src/Distribution/Fields/ConfVar.hs
rename to Cabal-syntax/src/Distribution/Fields/ConfVar.hs
diff --git a/Cabal/src/Distribution/Fields/Field.hs b/Cabal-syntax/src/Distribution/Fields/Field.hs
similarity index 98%
rename from Cabal/src/Distribution/Fields/Field.hs
rename to Cabal-syntax/src/Distribution/Fields/Field.hs
index f0f260c6d9844d37301da23892248dd85ec9710b..4c06342ed065134f8acbd228145cd34cf1c87441 100644
--- a/Cabal/src/Distribution/Fields/Field.hs
+++ b/Cabal-syntax/src/Distribution/Fields/Field.hs
@@ -31,7 +31,7 @@ import qualified Data.ByteString.Char8       as B
 import qualified Data.Char                   as Char
 import           Distribution.Compat.Prelude
 import           Distribution.Pretty         (showTokenStr)
-import           Distribution.Simple.Utils   (fromUTF8BS)
+import           Distribution.Utils.Generic  (fromUTF8BS)
 import           Prelude ()
 
 
diff --git a/Cabal/src/Distribution/Fields/Lexer.hs b/Cabal-syntax/src/Distribution/Fields/Lexer.hs
similarity index 100%
rename from Cabal/src/Distribution/Fields/Lexer.hs
rename to Cabal-syntax/src/Distribution/Fields/Lexer.hs
diff --git a/Cabal/src/Distribution/Fields/LexerMonad.hs b/Cabal-syntax/src/Distribution/Fields/LexerMonad.hs
similarity index 100%
rename from Cabal/src/Distribution/Fields/LexerMonad.hs
rename to Cabal-syntax/src/Distribution/Fields/LexerMonad.hs
diff --git a/Cabal/src/Distribution/Fields/ParseResult.hs b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs
similarity index 75%
rename from Cabal/src/Distribution/Fields/ParseResult.hs
rename to Cabal-syntax/src/Distribution/Fields/ParseResult.hs
index a70211385d4bd03e9cad9fde8b2c3b89060bfd01..b7dbcf4a220b687df5498f447f3ab23f98c71600 100644
--- a/Cabal/src/Distribution/Fields/ParseResult.hs
+++ b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs
@@ -14,21 +14,15 @@ module Distribution.Fields.ParseResult (
     parseFatalFailure',
     getCabalSpecVersion,
     setCabalSpecVersion,
-    readAndParseFile,
-    parseString,
     withoutWarnings,
     ) where
 
-import qualified Data.ByteString.Char8        as BS
 import           Distribution.Compat.Prelude
-import           Distribution.Parsec.Error    (PError (..), showPError)
+import           Distribution.Parsec.Error    (PError (..))
 import           Distribution.Parsec.Position (Position (..), zeroPos)
-import           Distribution.Parsec.Warning  (PWarnType (..), PWarning (..), showPWarning)
-import           Distribution.Simple.Utils    (die', warn)
-import           Distribution.Verbosity       (Verbosity)
+import           Distribution.Parsec.Warning  (PWarnType (..), PWarning (..))
 import           Distribution.Version         (Version)
 import           Prelude ()
-import           System.Directory             (doesFileExist)
 
 #if MIN_VERSION_base(4,10,0)
 import Control.Applicative (Applicative (..))
@@ -160,37 +154,3 @@ parseFatalFailure' = PR pr
     pr s                    failure _success = failure s
 
     err = PError zeroPos "Unknown fatal error"
-
--- | Helper combinator to do parsing plumbing for files.
---
--- Given a parser and a filename, return the parse of the file,
--- after checking if the file exists.
---
--- Argument order is chosen to encourage partial application.
-readAndParseFile
-    :: (BS.ByteString -> ParseResult a)  -- ^ File contents to final value parser
-    -> Verbosity                         -- ^ Verbosity level
-    -> FilePath                          -- ^ File to read
-    -> IO a
-readAndParseFile parser verbosity fpath = do
-    exists <- doesFileExist fpath
-    unless exists $
-      die' verbosity $
-        "Error Parsing: file \"" ++ fpath ++ "\" doesn't exist. Cannot continue."
-    bs <- BS.readFile fpath
-    parseString parser verbosity fpath bs
-
-parseString
-    :: (BS.ByteString -> ParseResult a)  -- ^ File contents to final value parser
-    -> Verbosity                         -- ^ Verbosity level
-    -> String                            -- ^ File name
-    -> BS.ByteString
-    -> IO a
-parseString parser verbosity name bs = do
-    let (warnings, result) = runParseResult (parser bs)
-    traverse_ (warn verbosity . showPWarning name) warnings
-    case result of
-        Right x -> return x
-        Left (_, errors) -> do
-            traverse_ (warn verbosity . showPError name) errors
-            die' verbosity $ "Failed parsing \"" ++ name ++ "\"."
diff --git a/Cabal/src/Distribution/Fields/Parser.hs b/Cabal-syntax/src/Distribution/Fields/Parser.hs
similarity index 100%
rename from Cabal/src/Distribution/Fields/Parser.hs
rename to Cabal-syntax/src/Distribution/Fields/Parser.hs
diff --git a/Cabal/src/Distribution/Fields/Pretty.hs b/Cabal-syntax/src/Distribution/Fields/Pretty.hs
similarity index 98%
rename from Cabal/src/Distribution/Fields/Pretty.hs
rename to Cabal-syntax/src/Distribution/Fields/Pretty.hs
index dc3985cf912f7607cea68cd388f2febad0130018..2c6d61483409f7a890608595f7e9316b18b0b708 100644
--- a/Cabal/src/Distribution/Fields/Pretty.hs
+++ b/Cabal-syntax/src/Distribution/Fields/Pretty.hs
@@ -26,8 +26,8 @@ import Distribution.Compat.Prelude
 import Distribution.Pretty         (showToken)
 import Prelude ()
 
-import Distribution.Fields.Field (FieldName)
-import Distribution.Simple.Utils (fromUTF8BS)
+import Distribution.Fields.Field   (FieldName)
+import Distribution.Utils.Generic  (fromUTF8BS)
 
 import qualified Distribution.Fields.Parser as P
 
diff --git a/Cabal/src/Distribution/InstalledPackageInfo.hs b/Cabal-syntax/src/Distribution/InstalledPackageInfo.hs
similarity index 100%
rename from Cabal/src/Distribution/InstalledPackageInfo.hs
rename to Cabal-syntax/src/Distribution/InstalledPackageInfo.hs
diff --git a/Cabal/src/Distribution/License.hs b/Cabal-syntax/src/Distribution/License.hs
similarity index 100%
rename from Cabal/src/Distribution/License.hs
rename to Cabal-syntax/src/Distribution/License.hs
diff --git a/Cabal/src/Distribution/ModuleName.hs b/Cabal-syntax/src/Distribution/ModuleName.hs
similarity index 100%
rename from Cabal/src/Distribution/ModuleName.hs
rename to Cabal-syntax/src/Distribution/ModuleName.hs
diff --git a/Cabal/src/Distribution/Package.hs b/Cabal-syntax/src/Distribution/Package.hs
similarity index 100%
rename from Cabal/src/Distribution/Package.hs
rename to Cabal-syntax/src/Distribution/Package.hs
diff --git a/Cabal/src/Distribution/PackageDescription.hs b/Cabal-syntax/src/Distribution/PackageDescription.hs
similarity index 100%
rename from Cabal/src/Distribution/PackageDescription.hs
rename to Cabal-syntax/src/Distribution/PackageDescription.hs
diff --git a/Cabal/src/Distribution/PackageDescription/Configuration.hs b/Cabal-syntax/src/Distribution/PackageDescription/Configuration.hs
similarity index 99%
rename from Cabal/src/Distribution/PackageDescription/Configuration.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/Configuration.hs
index fdb621add6b722c995d191b4ff3c6b4ca162462f..3a52ca783db379c9c7f0422f9d3aec235f242776 100644
--- a/Cabal/src/Distribution/PackageDescription/Configuration.hs
+++ b/Cabal-syntax/src/Distribution/PackageDescription/Configuration.hs
@@ -51,13 +51,13 @@ import           Distribution.PackageDescription
 import           Distribution.PackageDescription.Utils
 import           Distribution.Parsec
 import           Distribution.Pretty
-import           Distribution.Simple.Utils
 import           Distribution.System
 import           Distribution.Types.Component
 import Distribution.Utils.Path
 import           Distribution.Types.ComponentRequestedSpec
 import           Distribution.Types.DependencyMap
 import           Distribution.Types.PackageVersionConstraint
+import           Distribution.Utils.Generic
 import           Distribution.Version
 
 import qualified Data.Map.Lazy as Map
diff --git a/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs b/Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs
similarity index 100%
rename from Cabal/src/Distribution/PackageDescription/FieldGrammar.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/FieldGrammar.hs
diff --git a/Cabal/src/Distribution/PackageDescription/Parsec.hs b/Cabal-syntax/src/Distribution/PackageDescription/Parsec.hs
similarity index 98%
rename from Cabal/src/Distribution/PackageDescription/Parsec.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/Parsec.hs
index d5631a775cf89fc6096a38816a10ef422bf2ce96..b4a8a6dae1d8b3ff8b0966ca07bda1e35a015349 100644
--- a/Cabal/src/Distribution/PackageDescription/Parsec.hs
+++ b/Cabal-syntax/src/Distribution/PackageDescription/Parsec.hs
@@ -16,7 +16,6 @@
 
 module Distribution.PackageDescription.Parsec (
     -- * Package descriptions
-    readGenericPackageDescription,
     parseGenericPackageDescription,
     parseGenericPackageDescriptionMaybe,
 
@@ -28,7 +27,6 @@ module Distribution.PackageDescription.Parsec (
     scanSpecVersion,
 
     -- ** Supplementary build information
-    readHookedBuildInfo,
     parseHookedBuildInfo,
     ) where
 
@@ -55,9 +53,7 @@ import Distribution.Parsec.FieldLineStream           (fieldLineStreamFromBS)
 import Distribution.Parsec.Position                  (Position (..), zeroPos)
 import Distribution.Parsec.Warning                   (PWarnType (..))
 import Distribution.Pretty                           (prettyShow)
-import Distribution.Simple.Utils                     (fromUTF8BS, toUTF8BS)
-import Distribution.Utils.Generic                    (breakMaybe, unfoldrM, validateUTF8)
-import Distribution.Verbosity                        (Verbosity)
+import Distribution.Utils.Generic                    (breakMaybe, fromUTF8BS, toUTF8BS, unfoldrM, validateUTF8)
 import Distribution.Version                          (Version, mkVersion, versionNumbers)
 
 import qualified Data.ByteString                                   as BS
@@ -74,14 +70,6 @@ import qualified Distribution.Types.PackageDescription.Lens        as L
 import qualified Distribution.Types.SetupBuildInfo.Lens            as L
 import qualified Text.Parsec                                       as P
 
--- ---------------------------------------------------------------
--- Parsing
--- ---------------------------------------------------------------
-
--- | Parse the given package file.
-readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
-readGenericPackageDescription = readAndParseFile parseGenericPackageDescription
-
 ------------------------------------------------------------------------------
 -- | Parses the given file into a 'GenericPackageDescription'.
 --
@@ -874,9 +862,6 @@ libFieldNames = fieldGrammarKnownFieldList (libraryFieldGrammar LMainLibName)
 -- Suplementary build information
 -------------------------------------------------------------------------------
 
-readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
-readHookedBuildInfo = readAndParseFile parseHookedBuildInfo
-
 parseHookedBuildInfo :: BS.ByteString -> ParseResult HookedBuildInfo
 parseHookedBuildInfo bs = case readFields' bs of
     Right (fs, lexWarnings) -> do
diff --git a/Cabal/src/Distribution/PackageDescription/PrettyPrint.hs b/Cabal-syntax/src/Distribution/PackageDescription/PrettyPrint.hs
similarity index 99%
rename from Cabal/src/Distribution/PackageDescription/PrettyPrint.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/PrettyPrint.hs
index 2529a0207793257c81446f9de5182c088412dd8e..4a2f5409695409feb28164c715b2924106d4c759 100644
--- a/Cabal/src/Distribution/PackageDescription/PrettyPrint.hs
+++ b/Cabal-syntax/src/Distribution/PackageDescription/PrettyPrint.hs
@@ -36,12 +36,12 @@ import Distribution.Fields.Pretty
 import Distribution.Compat.Lens
 import Distribution.PackageDescription
 import Distribution.Pretty
-import Distribution.Simple.Utils (writeFileAtomic, writeUTF8File)
 import Distribution.FieldGrammar                     (PrettyFieldGrammar', prettyFieldGrammar)
 import Distribution.PackageDescription.Configuration (transformAllBuildInfos)
 import Distribution.PackageDescription.FieldGrammar
        (benchmarkFieldGrammar, buildInfoFieldGrammar, executableFieldGrammar, flagFieldGrammar, foreignLibFieldGrammar, libraryFieldGrammar,
        packageDescriptionFieldGrammar, setupBInfoFieldGrammar, sourceRepoFieldGrammar, testSuiteFieldGrammar)
+import Distribution.Utils.Generic                    (writeFileAtomic, writeUTF8File)
 
 import qualified Distribution.PackageDescription.FieldGrammar as FG
 import qualified Distribution.Types.BuildInfo.Lens                 as L
diff --git a/Cabal/src/Distribution/PackageDescription/Quirks.hs b/Cabal-syntax/src/Distribution/PackageDescription/Quirks.hs
similarity index 100%
rename from Cabal/src/Distribution/PackageDescription/Quirks.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/Quirks.hs
diff --git a/Cabal/src/Distribution/PackageDescription/Utils.hs b/Cabal-syntax/src/Distribution/PackageDescription/Utils.hs
similarity index 100%
rename from Cabal/src/Distribution/PackageDescription/Utils.hs
rename to Cabal-syntax/src/Distribution/PackageDescription/Utils.hs
diff --git a/Cabal/src/Distribution/Parsec.hs b/Cabal-syntax/src/Distribution/Parsec.hs
similarity index 100%
rename from Cabal/src/Distribution/Parsec.hs
rename to Cabal-syntax/src/Distribution/Parsec.hs
diff --git a/Cabal/src/Distribution/Parsec/Error.hs b/Cabal-syntax/src/Distribution/Parsec/Error.hs
similarity index 100%
rename from Cabal/src/Distribution/Parsec/Error.hs
rename to Cabal-syntax/src/Distribution/Parsec/Error.hs
diff --git a/Cabal/src/Distribution/Parsec/FieldLineStream.hs b/Cabal-syntax/src/Distribution/Parsec/FieldLineStream.hs
similarity index 100%
rename from Cabal/src/Distribution/Parsec/FieldLineStream.hs
rename to Cabal-syntax/src/Distribution/Parsec/FieldLineStream.hs
diff --git a/Cabal/src/Distribution/Parsec/Position.hs b/Cabal-syntax/src/Distribution/Parsec/Position.hs
similarity index 100%
rename from Cabal/src/Distribution/Parsec/Position.hs
rename to Cabal-syntax/src/Distribution/Parsec/Position.hs
diff --git a/Cabal/src/Distribution/Parsec/Warning.hs b/Cabal-syntax/src/Distribution/Parsec/Warning.hs
similarity index 100%
rename from Cabal/src/Distribution/Parsec/Warning.hs
rename to Cabal-syntax/src/Distribution/Parsec/Warning.hs
diff --git a/Cabal/src/Distribution/Pretty.hs b/Cabal-syntax/src/Distribution/Pretty.hs
similarity index 100%
rename from Cabal/src/Distribution/Pretty.hs
rename to Cabal-syntax/src/Distribution/Pretty.hs
diff --git a/Cabal/src/Distribution/SPDX.hs b/Cabal-syntax/src/Distribution/SPDX.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX.hs
rename to Cabal-syntax/src/Distribution/SPDX.hs
diff --git a/Cabal/src/Distribution/SPDX/License.hs b/Cabal-syntax/src/Distribution/SPDX/License.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/License.hs
rename to Cabal-syntax/src/Distribution/SPDX/License.hs
diff --git a/Cabal/src/Distribution/SPDX/LicenseExceptionId.hs b/Cabal-syntax/src/Distribution/SPDX/LicenseExceptionId.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/LicenseExceptionId.hs
rename to Cabal-syntax/src/Distribution/SPDX/LicenseExceptionId.hs
diff --git a/Cabal/src/Distribution/SPDX/LicenseExpression.hs b/Cabal-syntax/src/Distribution/SPDX/LicenseExpression.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/LicenseExpression.hs
rename to Cabal-syntax/src/Distribution/SPDX/LicenseExpression.hs
diff --git a/Cabal/src/Distribution/SPDX/LicenseId.hs b/Cabal-syntax/src/Distribution/SPDX/LicenseId.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/LicenseId.hs
rename to Cabal-syntax/src/Distribution/SPDX/LicenseId.hs
diff --git a/Cabal/src/Distribution/SPDX/LicenseListVersion.hs b/Cabal-syntax/src/Distribution/SPDX/LicenseListVersion.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/LicenseListVersion.hs
rename to Cabal-syntax/src/Distribution/SPDX/LicenseListVersion.hs
diff --git a/Cabal/src/Distribution/SPDX/LicenseReference.hs b/Cabal-syntax/src/Distribution/SPDX/LicenseReference.hs
similarity index 100%
rename from Cabal/src/Distribution/SPDX/LicenseReference.hs
rename to Cabal-syntax/src/Distribution/SPDX/LicenseReference.hs
diff --git a/Cabal/src/Distribution/System.hs b/Cabal-syntax/src/Distribution/System.hs
similarity index 100%
rename from Cabal/src/Distribution/System.hs
rename to Cabal-syntax/src/Distribution/System.hs
diff --git a/Cabal/src/Distribution/Text.hs b/Cabal-syntax/src/Distribution/Text.hs
similarity index 100%
rename from Cabal/src/Distribution/Text.hs
rename to Cabal-syntax/src/Distribution/Text.hs
diff --git a/Cabal/src/Distribution/Types/AbiDependency.hs b/Cabal-syntax/src/Distribution/Types/AbiDependency.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/AbiDependency.hs
rename to Cabal-syntax/src/Distribution/Types/AbiDependency.hs
diff --git a/Cabal/src/Distribution/Types/AbiHash.hs b/Cabal-syntax/src/Distribution/Types/AbiHash.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/AbiHash.hs
rename to Cabal-syntax/src/Distribution/Types/AbiHash.hs
diff --git a/Cabal/src/Distribution/Types/Benchmark.hs b/Cabal-syntax/src/Distribution/Types/Benchmark.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Benchmark.hs
rename to Cabal-syntax/src/Distribution/Types/Benchmark.hs
diff --git a/Cabal/src/Distribution/Types/Benchmark/Lens.hs b/Cabal-syntax/src/Distribution/Types/Benchmark/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Benchmark/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/Benchmark/Lens.hs
diff --git a/Cabal/src/Distribution/Types/BenchmarkInterface.hs b/Cabal-syntax/src/Distribution/Types/BenchmarkInterface.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/BenchmarkInterface.hs
rename to Cabal-syntax/src/Distribution/Types/BenchmarkInterface.hs
diff --git a/Cabal/src/Distribution/Types/BenchmarkType.hs b/Cabal-syntax/src/Distribution/Types/BenchmarkType.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/BenchmarkType.hs
rename to Cabal-syntax/src/Distribution/Types/BenchmarkType.hs
diff --git a/Cabal/src/Distribution/Types/BuildInfo.hs b/Cabal-syntax/src/Distribution/Types/BuildInfo.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/BuildInfo.hs
rename to Cabal-syntax/src/Distribution/Types/BuildInfo.hs
diff --git a/Cabal/src/Distribution/Types/BuildInfo/Lens.hs b/Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/BuildInfo/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/BuildInfo/Lens.hs
diff --git a/Cabal/src/Distribution/Types/BuildType.hs b/Cabal-syntax/src/Distribution/Types/BuildType.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/BuildType.hs
rename to Cabal-syntax/src/Distribution/Types/BuildType.hs
diff --git a/Cabal/src/Distribution/Types/Component.hs b/Cabal-syntax/src/Distribution/Types/Component.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Component.hs
rename to Cabal-syntax/src/Distribution/Types/Component.hs
diff --git a/Cabal/src/Distribution/Types/ComponentId.hs b/Cabal-syntax/src/Distribution/Types/ComponentId.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ComponentId.hs
rename to Cabal-syntax/src/Distribution/Types/ComponentId.hs
diff --git a/Cabal/src/Distribution/Types/ComponentName.hs b/Cabal-syntax/src/Distribution/Types/ComponentName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ComponentName.hs
rename to Cabal-syntax/src/Distribution/Types/ComponentName.hs
diff --git a/Cabal/src/Distribution/Types/ComponentRequestedSpec.hs b/Cabal-syntax/src/Distribution/Types/ComponentRequestedSpec.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ComponentRequestedSpec.hs
rename to Cabal-syntax/src/Distribution/Types/ComponentRequestedSpec.hs
diff --git a/Cabal/src/Distribution/Types/CondTree.hs b/Cabal-syntax/src/Distribution/Types/CondTree.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/CondTree.hs
rename to Cabal-syntax/src/Distribution/Types/CondTree.hs
diff --git a/Cabal/src/Distribution/Types/Condition.hs b/Cabal-syntax/src/Distribution/Types/Condition.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Condition.hs
rename to Cabal-syntax/src/Distribution/Types/Condition.hs
diff --git a/Cabal/src/Distribution/Types/ConfVar.hs b/Cabal-syntax/src/Distribution/Types/ConfVar.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ConfVar.hs
rename to Cabal-syntax/src/Distribution/Types/ConfVar.hs
diff --git a/Cabal/src/Distribution/Types/Dependency.hs b/Cabal-syntax/src/Distribution/Types/Dependency.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Dependency.hs
rename to Cabal-syntax/src/Distribution/Types/Dependency.hs
diff --git a/Cabal/src/Distribution/Types/DependencyMap.hs b/Cabal-syntax/src/Distribution/Types/DependencyMap.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/DependencyMap.hs
rename to Cabal-syntax/src/Distribution/Types/DependencyMap.hs
diff --git a/Cabal/src/Distribution/Types/ExeDependency.hs b/Cabal-syntax/src/Distribution/Types/ExeDependency.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ExeDependency.hs
rename to Cabal-syntax/src/Distribution/Types/ExeDependency.hs
diff --git a/Cabal/src/Distribution/Types/Executable.hs b/Cabal-syntax/src/Distribution/Types/Executable.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Executable.hs
rename to Cabal-syntax/src/Distribution/Types/Executable.hs
diff --git a/Cabal/src/Distribution/Types/Executable/Lens.hs b/Cabal-syntax/src/Distribution/Types/Executable/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Executable/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/Executable/Lens.hs
diff --git a/Cabal/src/Distribution/Types/ExecutableScope.hs b/Cabal-syntax/src/Distribution/Types/ExecutableScope.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ExecutableScope.hs
rename to Cabal-syntax/src/Distribution/Types/ExecutableScope.hs
diff --git a/Cabal/src/Distribution/Types/ExposedModule.hs b/Cabal-syntax/src/Distribution/Types/ExposedModule.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ExposedModule.hs
rename to Cabal-syntax/src/Distribution/Types/ExposedModule.hs
diff --git a/Cabal/src/Distribution/Types/Flag.hs b/Cabal-syntax/src/Distribution/Types/Flag.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Flag.hs
rename to Cabal-syntax/src/Distribution/Types/Flag.hs
diff --git a/Cabal/src/Distribution/Types/ForeignLib.hs b/Cabal-syntax/src/Distribution/Types/ForeignLib.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ForeignLib.hs
rename to Cabal-syntax/src/Distribution/Types/ForeignLib.hs
diff --git a/Cabal/src/Distribution/Types/ForeignLib/Lens.hs b/Cabal-syntax/src/Distribution/Types/ForeignLib/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ForeignLib/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/ForeignLib/Lens.hs
diff --git a/Cabal/src/Distribution/Types/ForeignLibOption.hs b/Cabal-syntax/src/Distribution/Types/ForeignLibOption.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ForeignLibOption.hs
rename to Cabal-syntax/src/Distribution/Types/ForeignLibOption.hs
diff --git a/Cabal/src/Distribution/Types/ForeignLibType.hs b/Cabal-syntax/src/Distribution/Types/ForeignLibType.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ForeignLibType.hs
rename to Cabal-syntax/src/Distribution/Types/ForeignLibType.hs
diff --git a/Cabal/src/Distribution/Types/GenericPackageDescription.hs b/Cabal-syntax/src/Distribution/Types/GenericPackageDescription.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/GenericPackageDescription.hs
rename to Cabal-syntax/src/Distribution/Types/GenericPackageDescription.hs
diff --git a/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs b/Cabal-syntax/src/Distribution/Types/GenericPackageDescription/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/GenericPackageDescription/Lens.hs
diff --git a/Cabal/src/Distribution/Types/HookedBuildInfo.hs b/Cabal-syntax/src/Distribution/Types/HookedBuildInfo.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/HookedBuildInfo.hs
rename to Cabal-syntax/src/Distribution/Types/HookedBuildInfo.hs
diff --git a/Cabal/src/Distribution/Types/IncludeRenaming.hs b/Cabal-syntax/src/Distribution/Types/IncludeRenaming.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/IncludeRenaming.hs
rename to Cabal-syntax/src/Distribution/Types/IncludeRenaming.hs
diff --git a/Cabal/src/Distribution/Types/InstalledPackageInfo.hs b/Cabal-syntax/src/Distribution/Types/InstalledPackageInfo.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/InstalledPackageInfo.hs
rename to Cabal-syntax/src/Distribution/Types/InstalledPackageInfo.hs
diff --git a/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs b/Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs
rename to Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs
diff --git a/Cabal/src/Distribution/Types/InstalledPackageInfo/Lens.hs b/Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/InstalledPackageInfo/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/Lens.hs
diff --git a/Cabal/src/Distribution/Types/LegacyExeDependency.hs b/Cabal-syntax/src/Distribution/Types/LegacyExeDependency.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/LegacyExeDependency.hs
rename to Cabal-syntax/src/Distribution/Types/LegacyExeDependency.hs
diff --git a/Cabal/src/Distribution/Types/Lens.hs b/Cabal-syntax/src/Distribution/Types/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/Lens.hs
diff --git a/Cabal/src/Distribution/Types/Library.hs b/Cabal-syntax/src/Distribution/Types/Library.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Library.hs
rename to Cabal-syntax/src/Distribution/Types/Library.hs
diff --git a/Cabal/src/Distribution/Types/Library/Lens.hs b/Cabal-syntax/src/Distribution/Types/Library/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Library/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/Library/Lens.hs
diff --git a/Cabal/src/Distribution/Types/LibraryName.hs b/Cabal-syntax/src/Distribution/Types/LibraryName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/LibraryName.hs
rename to Cabal-syntax/src/Distribution/Types/LibraryName.hs
diff --git a/Cabal/src/Distribution/Types/LibraryVisibility.hs b/Cabal-syntax/src/Distribution/Types/LibraryVisibility.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/LibraryVisibility.hs
rename to Cabal-syntax/src/Distribution/Types/LibraryVisibility.hs
diff --git a/Cabal/src/Distribution/Types/Mixin.hs b/Cabal-syntax/src/Distribution/Types/Mixin.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Mixin.hs
rename to Cabal-syntax/src/Distribution/Types/Mixin.hs
diff --git a/Cabal/src/Distribution/Types/Module.hs b/Cabal-syntax/src/Distribution/Types/Module.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Module.hs
rename to Cabal-syntax/src/Distribution/Types/Module.hs
diff --git a/Cabal/src/Distribution/Types/ModuleReexport.hs b/Cabal-syntax/src/Distribution/Types/ModuleReexport.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ModuleReexport.hs
rename to Cabal-syntax/src/Distribution/Types/ModuleReexport.hs
diff --git a/Cabal/src/Distribution/Types/ModuleRenaming.hs b/Cabal-syntax/src/Distribution/Types/ModuleRenaming.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/ModuleRenaming.hs
rename to Cabal-syntax/src/Distribution/Types/ModuleRenaming.hs
diff --git a/Cabal/src/Distribution/Types/MungedPackageId.hs b/Cabal-syntax/src/Distribution/Types/MungedPackageId.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/MungedPackageId.hs
rename to Cabal-syntax/src/Distribution/Types/MungedPackageId.hs
diff --git a/Cabal/src/Distribution/Types/MungedPackageName.hs b/Cabal-syntax/src/Distribution/Types/MungedPackageName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/MungedPackageName.hs
rename to Cabal-syntax/src/Distribution/Types/MungedPackageName.hs
diff --git a/Cabal/src/Distribution/Types/PackageDescription.hs b/Cabal-syntax/src/Distribution/Types/PackageDescription.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageDescription.hs
rename to Cabal-syntax/src/Distribution/Types/PackageDescription.hs
diff --git a/Cabal/src/Distribution/Types/PackageDescription/Lens.hs b/Cabal-syntax/src/Distribution/Types/PackageDescription/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageDescription/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/PackageDescription/Lens.hs
diff --git a/Cabal/src/Distribution/Types/PackageId.hs b/Cabal-syntax/src/Distribution/Types/PackageId.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageId.hs
rename to Cabal-syntax/src/Distribution/Types/PackageId.hs
diff --git a/Cabal/src/Distribution/Types/PackageId/Lens.hs b/Cabal-syntax/src/Distribution/Types/PackageId/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageId/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/PackageId/Lens.hs
diff --git a/Cabal/src/Distribution/Types/PackageName.hs b/Cabal-syntax/src/Distribution/Types/PackageName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageName.hs
rename to Cabal-syntax/src/Distribution/Types/PackageName.hs
diff --git a/Cabal/src/Distribution/Types/PackageVersionConstraint.hs b/Cabal-syntax/src/Distribution/Types/PackageVersionConstraint.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PackageVersionConstraint.hs
rename to Cabal-syntax/src/Distribution/Types/PackageVersionConstraint.hs
diff --git a/Cabal/src/Distribution/Types/PkgconfigDependency.hs b/Cabal-syntax/src/Distribution/Types/PkgconfigDependency.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PkgconfigDependency.hs
rename to Cabal-syntax/src/Distribution/Types/PkgconfigDependency.hs
diff --git a/Cabal/src/Distribution/Types/PkgconfigName.hs b/Cabal-syntax/src/Distribution/Types/PkgconfigName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PkgconfigName.hs
rename to Cabal-syntax/src/Distribution/Types/PkgconfigName.hs
diff --git a/Cabal/src/Distribution/Types/PkgconfigVersion.hs b/Cabal-syntax/src/Distribution/Types/PkgconfigVersion.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PkgconfigVersion.hs
rename to Cabal-syntax/src/Distribution/Types/PkgconfigVersion.hs
diff --git a/Cabal/src/Distribution/Types/PkgconfigVersionRange.hs b/Cabal-syntax/src/Distribution/Types/PkgconfigVersionRange.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/PkgconfigVersionRange.hs
rename to Cabal-syntax/src/Distribution/Types/PkgconfigVersionRange.hs
diff --git a/Cabal/src/Distribution/Types/SetupBuildInfo.hs b/Cabal-syntax/src/Distribution/Types/SetupBuildInfo.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/SetupBuildInfo.hs
rename to Cabal-syntax/src/Distribution/Types/SetupBuildInfo.hs
diff --git a/Cabal/src/Distribution/Types/SetupBuildInfo/Lens.hs b/Cabal-syntax/src/Distribution/Types/SetupBuildInfo/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/SetupBuildInfo/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/SetupBuildInfo/Lens.hs
diff --git a/Cabal/src/Distribution/Types/SourceRepo.hs b/Cabal-syntax/src/Distribution/Types/SourceRepo.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/SourceRepo.hs
rename to Cabal-syntax/src/Distribution/Types/SourceRepo.hs
diff --git a/Cabal/src/Distribution/Types/SourceRepo/Lens.hs b/Cabal-syntax/src/Distribution/Types/SourceRepo/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/SourceRepo/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/SourceRepo/Lens.hs
diff --git a/Cabal/src/Distribution/Types/TestSuite.hs b/Cabal-syntax/src/Distribution/Types/TestSuite.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/TestSuite.hs
rename to Cabal-syntax/src/Distribution/Types/TestSuite.hs
diff --git a/Cabal/src/Distribution/Types/TestSuite/Lens.hs b/Cabal-syntax/src/Distribution/Types/TestSuite/Lens.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/TestSuite/Lens.hs
rename to Cabal-syntax/src/Distribution/Types/TestSuite/Lens.hs
diff --git a/Cabal/src/Distribution/Types/TestSuiteInterface.hs b/Cabal-syntax/src/Distribution/Types/TestSuiteInterface.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/TestSuiteInterface.hs
rename to Cabal-syntax/src/Distribution/Types/TestSuiteInterface.hs
diff --git a/Cabal/src/Distribution/Types/TestType.hs b/Cabal-syntax/src/Distribution/Types/TestType.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/TestType.hs
rename to Cabal-syntax/src/Distribution/Types/TestType.hs
diff --git a/Cabal/src/Distribution/Types/UnitId.hs b/Cabal-syntax/src/Distribution/Types/UnitId.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/UnitId.hs
rename to Cabal-syntax/src/Distribution/Types/UnitId.hs
diff --git a/Cabal/src/Distribution/Types/UnqualComponentName.hs b/Cabal-syntax/src/Distribution/Types/UnqualComponentName.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/UnqualComponentName.hs
rename to Cabal-syntax/src/Distribution/Types/UnqualComponentName.hs
diff --git a/Cabal/src/Distribution/Types/Version.hs b/Cabal-syntax/src/Distribution/Types/Version.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/Version.hs
rename to Cabal-syntax/src/Distribution/Types/Version.hs
diff --git a/Cabal/src/Distribution/Types/VersionInterval.hs b/Cabal-syntax/src/Distribution/Types/VersionInterval.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/VersionInterval.hs
rename to Cabal-syntax/src/Distribution/Types/VersionInterval.hs
diff --git a/Cabal/src/Distribution/Types/VersionInterval/Legacy.hs b/Cabal-syntax/src/Distribution/Types/VersionInterval/Legacy.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/VersionInterval/Legacy.hs
rename to Cabal-syntax/src/Distribution/Types/VersionInterval/Legacy.hs
diff --git a/Cabal/src/Distribution/Types/VersionRange.hs b/Cabal-syntax/src/Distribution/Types/VersionRange.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/VersionRange.hs
rename to Cabal-syntax/src/Distribution/Types/VersionRange.hs
diff --git a/Cabal/src/Distribution/Types/VersionRange/Internal.hs b/Cabal-syntax/src/Distribution/Types/VersionRange/Internal.hs
similarity index 100%
rename from Cabal/src/Distribution/Types/VersionRange/Internal.hs
rename to Cabal-syntax/src/Distribution/Types/VersionRange/Internal.hs
diff --git a/Cabal/src/Distribution/Utils/Base62.hs b/Cabal-syntax/src/Distribution/Utils/Base62.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/Base62.hs
rename to Cabal-syntax/src/Distribution/Utils/Base62.hs
diff --git a/Cabal/src/Distribution/Utils/Generic.hs b/Cabal-syntax/src/Distribution/Utils/Generic.hs
similarity index 99%
rename from Cabal/src/Distribution/Utils/Generic.hs
rename to Cabal-syntax/src/Distribution/Utils/Generic.hs
index f3a8a9a5c970cc11c6ad3d121c0ac262ad951bf8..081410a5d065910aa21ca52954c0e3e086937538 100644
--- a/Cabal/src/Distribution/Utils/Generic.hs
+++ b/Cabal-syntax/src/Distribution/Utils/Generic.hs
@@ -7,7 +7,7 @@
 
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Distribution.Simple.Utils
+-- Module      :  Distribution.Utils.Generic
 -- Copyright   :  Isaac Jones, Simon Marlow 2003-2004
 -- License     :  BSD3
 --                portions Copyright (c) 2007, Galois Inc.
diff --git a/Cabal/src/Distribution/Utils/MD5.hs b/Cabal-syntax/src/Distribution/Utils/MD5.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/MD5.hs
rename to Cabal-syntax/src/Distribution/Utils/MD5.hs
diff --git a/Cabal/src/Distribution/Utils/Path.hs b/Cabal-syntax/src/Distribution/Utils/Path.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/Path.hs
rename to Cabal-syntax/src/Distribution/Utils/Path.hs
diff --git a/Cabal/src/Distribution/Utils/ShortText.hs b/Cabal-syntax/src/Distribution/Utils/ShortText.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/ShortText.hs
rename to Cabal-syntax/src/Distribution/Utils/ShortText.hs
diff --git a/Cabal/src/Distribution/Utils/String.hs b/Cabal-syntax/src/Distribution/Utils/String.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/String.hs
rename to Cabal-syntax/src/Distribution/Utils/String.hs
diff --git a/Cabal/src/Distribution/Utils/Structured.hs b/Cabal-syntax/src/Distribution/Utils/Structured.hs
similarity index 100%
rename from Cabal/src/Distribution/Utils/Structured.hs
rename to Cabal-syntax/src/Distribution/Utils/Structured.hs
diff --git a/Cabal/src/Distribution/Version.hs b/Cabal-syntax/src/Distribution/Version.hs
similarity index 100%
rename from Cabal/src/Distribution/Version.hs
rename to Cabal-syntax/src/Distribution/Version.hs
diff --git a/Cabal/src/Language/Haskell/Extension.hs b/Cabal-syntax/src/Language/Haskell/Extension.hs
similarity index 100%
rename from Cabal/src/Language/Haskell/Extension.hs
rename to Cabal-syntax/src/Language/Haskell/Extension.hs
diff --git a/Cabal-tests/Cabal-tests.cabal b/Cabal-tests/Cabal-tests.cabal
index b22fc40a8ef783944d1483275f2aa5ce085ad553..8ac703d8b303c1212a0d83b85bfdcb842f564c69 100644
--- a/Cabal-tests/Cabal-tests.cabal
+++ b/Cabal-tests/Cabal-tests.cabal
@@ -57,6 +57,7 @@ test-suite unit-tests
     , bytestring
     , Cabal
     , Cabal-described
+    , Cabal-syntax
     , Cabal-QuickCheck
     , containers
     , deepseq
@@ -92,7 +93,7 @@ test-suite parser-tests
       base
     , base-compat       >=0.11.0  && <0.13
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , Cabal-tree-diff
     , Diff              >=0.4     && <0.5
     , directory
@@ -119,6 +120,7 @@ test-suite check-tests
       base
     , bytestring
     , Cabal
+    , Cabal-syntax
     , Diff          >=0.4     && <0.5
     , directory
     , filepath
@@ -142,6 +144,7 @@ test-suite custom-setup-tests
   build-depends:
       base
     , Cabal
+    , Cabal-syntax
     , directory
     , filepath
     , process
@@ -160,6 +163,7 @@ test-suite hackage-tests
       base
     , bytestring
     , Cabal
+    , Cabal-syntax
     , Cabal-tree-diff
     , containers
     , deepseq
@@ -188,7 +192,7 @@ test-suite rpmvercmp
   build-depends:
       base
     , bytestring
-    , Cabal
+    , Cabal-syntax
 
   build-depends:
       QuickCheck
@@ -210,7 +214,7 @@ test-suite no-thunks-test
   build-depends:
       base
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , tasty        >=1.2.3 && <1.5
     , tasty-hunit
 
diff --git a/Cabal-tree-diff/Cabal-tree-diff.cabal b/Cabal-tree-diff/Cabal-tree-diff.cabal
index 75b932207caad9927fa4c0320cd04b91c8661c49..1affd598cbb0fc04dd902ecf5aba86e7acc354d8 100644
--- a/Cabal-tree-diff/Cabal-tree-diff.cabal
+++ b/Cabal-tree-diff/Cabal-tree-diff.cabal
@@ -11,8 +11,9 @@ library
   ghc-options:      -Wall
   build-depends:
     , base
-    , Cabal      ^>=3.7.0.0
-    , tree-diff  ^>=0.1 || ^>=0.2
+    , Cabal-syntax  ^>=3.7.0.0
+    , Cabal         ^>=3.7.0.0
+    , tree-diff     ^>=0.1 || ^>=0.2
 
   exposed-modules:  Data.TreeDiff.Instances.Cabal
   other-modules:
diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal
index e9cdefc6299aa7a70de9e66dc9865f5f24cc4c69..32be4e244cae75874c264978b4c74c1fda0f67c7 100644
--- a/Cabal/Cabal.cabal
+++ b/Cabal/Cabal.cabal
@@ -29,14 +29,12 @@ source-repository head
   location: https://github.com/haskell/cabal/
   subdir:   Cabal
 
-flag bundled-binary-generic
-  default: False
-
 library
   default-language: Haskell2010
   hs-source-dirs: src
 
   build-depends:
+    Cabal-syntax >= 3.7    && < 3.8,
     array      >= 0.4.0.1  && < 0.6,
     base       >= 4.6      && < 5,
     bytestring >= 0.10.0.0 && < 0.12,
@@ -48,11 +46,6 @@ library
     process    >= 1.1.0.2  && < 1.7,
     time       >= 1.4.0.1  && < 1.13
 
-  if flag(bundled-binary-generic)
-    build-depends: binary >= 0.5.1.1 && < 0.7
-  else
-    build-depends: binary >= 0.7 && < 0.9
-
   if os(windows)
     build-depends: Win32 >= 2.3.0.0 && < 2.13
   else
@@ -78,7 +71,6 @@ library
     build-depends:  tagged >=0.8.6 && <0.9, bytestring-builder >= 0.10.8 && <0.11
 
   exposed-modules:
-    Distribution.Backpack
     Distribution.Backpack.Configure
     Distribution.Backpack.ComponentsGraph
     Distribution.Backpack.ConfiguredComponent
@@ -88,46 +80,21 @@ library
     Distribution.Backpack.ModSubst
     Distribution.Backpack.ModuleShape
     Distribution.Backpack.PreModuleShape
-    Distribution.CabalSpecVersion
     Distribution.Utils.IOData
-    Distribution.Utils.Path
     Distribution.Utils.LogProgress
     Distribution.Utils.MapAccum
-    Distribution.Utils.MD5
-    Distribution.Utils.String
-    Distribution.Utils.Structured
     Distribution.Compat.CreatePipe
     Distribution.Compat.Directory
     Distribution.Compat.Environment
-    Distribution.Compat.Exception
     Distribution.Compat.FilePath
-    Distribution.Compat.Graph
     Distribution.Compat.Internal.TempFile
-    Distribution.Compat.Newtype
-    Distribution.Compat.NonEmptySet
     Distribution.Compat.ResponseFile
     Distribution.Compat.Prelude.Internal
     Distribution.Compat.Process
-    Distribution.Compat.Semigroup
     Distribution.Compat.Stack
     Distribution.Compat.Time
-    Distribution.Compat.Typeable
-    Distribution.Compat.DList
-    Distribution.Compiler
-    Distribution.InstalledPackageInfo
-    Distribution.Types.AbiDependency
-    Distribution.Types.ExposedModule
-    Distribution.Types.InstalledPackageInfo
-    Distribution.Types.InstalledPackageInfo.FieldGrammar
-    Distribution.License
     Distribution.Make
-    Distribution.ModuleName
-    Distribution.Package
-    Distribution.PackageDescription
     Distribution.PackageDescription.Check
-    Distribution.PackageDescription.Configuration
-    Distribution.PackageDescription.PrettyPrint
-    Distribution.PackageDescription.Utils
     Distribution.ReadE
     Distribution.Simple
     Distribution.Simple.Bench
@@ -152,6 +119,7 @@ library
     Distribution.Simple.InstallDirs
     Distribution.Simple.InstallDirs.Internal
     Distribution.Simple.LocalBuildInfo
+    Distribution.Simple.PackageDescription
     Distribution.Simple.PackageIndex
     Distribution.Simple.PreProcess
     Distribution.Simple.PreProcess.Unlit
@@ -181,90 +149,20 @@ library
     Distribution.Simple.UHC
     Distribution.Simple.UserHooks
     Distribution.Simple.Utils
-    Distribution.SPDX
-    Distribution.SPDX.License
-    Distribution.SPDX.LicenseId
-    Distribution.SPDX.LicenseExceptionId
-    Distribution.SPDX.LicenseExpression
-    Distribution.SPDX.LicenseListVersion
-    Distribution.SPDX.LicenseReference
-    Distribution.System
     Distribution.TestSuite
-    Distribution.Text
-    Distribution.Pretty
-    Distribution.Types.AbiHash
     Distribution.Types.AnnotatedId
-    Distribution.Types.Benchmark
-    Distribution.Types.BenchmarkInterface
-    Distribution.Types.BenchmarkType
-    Distribution.Types.BuildInfo
-    Distribution.Types.BuildType
     Distribution.Types.ComponentInclude
-    Distribution.Types.ConfVar
-    Distribution.Types.Dependency
     Distribution.Types.DumpBuildInfo
-    Distribution.Types.ExeDependency
-    Distribution.Types.LegacyExeDependency
-    Distribution.Types.PkgconfigDependency
-    Distribution.Types.DependencyMap
-    Distribution.Types.ComponentId
-    Distribution.Types.MungedPackageId
-    Distribution.Types.PackageId
-    Distribution.Types.UnitId
-    Distribution.Types.Executable
-    Distribution.Types.ExecutableScope
-    Distribution.Types.Library
-    Distribution.Types.LibraryVisibility
-    Distribution.Types.Flag
-    Distribution.Types.ForeignLib
-    Distribution.Types.ForeignLibType
-    Distribution.Types.ForeignLibOption
-    Distribution.Types.Module
-    Distribution.Types.ModuleReexport
-    Distribution.Types.ModuleRenaming
-    Distribution.Types.ComponentName
-    Distribution.Types.LibraryName
-    Distribution.Types.MungedPackageName
-    Distribution.Types.PackageName
     Distribution.Types.PackageName.Magic
-    Distribution.Types.PkgconfigName
-    Distribution.Types.PkgconfigVersion
-    Distribution.Types.PkgconfigVersionRange
-    Distribution.Types.UnqualComponentName
-    Distribution.Types.IncludeRenaming
-    Distribution.Types.Mixin
-    Distribution.Types.SetupBuildInfo
-    Distribution.Types.TestSuite
-    Distribution.Types.TestSuiteInterface
-    Distribution.Types.TestType
-    Distribution.Types.GenericPackageDescription
-    Distribution.Types.Condition
-    Distribution.Types.CondTree
-    Distribution.Types.HookedBuildInfo
-    Distribution.Types.PackageDescription
-    Distribution.Types.SourceRepo
-    Distribution.Types.Component
     Distribution.Types.ComponentLocalBuildInfo
     Distribution.Types.LocalBuildInfo
-    Distribution.Types.ComponentRequestedSpec
     Distribution.Types.TargetInfo
-    Distribution.Types.Version
-    Distribution.Types.VersionRange
-    Distribution.Types.VersionRange.Internal
-    Distribution.Types.VersionInterval
-    Distribution.Types.VersionInterval.Legacy
     Distribution.Types.GivenComponent
-    Distribution.Types.PackageVersionConstraint
-    Distribution.Utils.Generic
     Distribution.Utils.Json
     Distribution.Utils.NubList
-    Distribution.Utils.ShortText
     Distribution.Utils.Progress
     Distribution.Verbosity
     Distribution.Verbosity.Internal
-    Distribution.Version
-    Language.Haskell.Extension
-    Distribution.Compat.Binary
 
   -- Parsec parser-related modules
   build-depends:
@@ -274,48 +172,6 @@ library
     mtl           >= 2.1      && < 2.3,
     text         (>= 1.2.3.0  && < 1.3) || (>= 2.0 && < 2.1),
     parsec        >= 3.1.13.0 && < 3.2
-  exposed-modules:
-    Distribution.Compat.Parsing
-    Distribution.Compat.CharParsing
-    Distribution.FieldGrammar
-    Distribution.FieldGrammar.Class
-    Distribution.FieldGrammar.FieldDescrs
-    Distribution.FieldGrammar.Newtypes
-    Distribution.FieldGrammar.Parsec
-    Distribution.FieldGrammar.Pretty
-    Distribution.PackageDescription.FieldGrammar
-    Distribution.PackageDescription.Parsec
-    Distribution.PackageDescription.Quirks
-    Distribution.Parsec
-    Distribution.Parsec.Error
-    Distribution.Parsec.Position
-    Distribution.Parsec.Warning
-    Distribution.Parsec.FieldLineStream
-    Distribution.Fields
-    Distribution.Fields.ConfVar
-    Distribution.Fields.Field
-    Distribution.Fields.Lexer
-    Distribution.Fields.LexerMonad
-    Distribution.Fields.ParseResult
-    Distribution.Fields.Parser
-    Distribution.Fields.Pretty
-
-  -- Lens functionality
-  exposed-modules:
-    Distribution.Compat.Lens
-    Distribution.Types.Lens
-    Distribution.Types.Benchmark.Lens
-    Distribution.Types.BuildInfo.Lens
-    Distribution.Types.Executable.Lens
-    Distribution.Types.ForeignLib.Lens
-    Distribution.Types.GenericPackageDescription.Lens
-    Distribution.Types.InstalledPackageInfo.Lens
-    Distribution.Types.Library.Lens
-    Distribution.Types.PackageDescription.Lens
-    Distribution.Types.PackageId.Lens
-    Distribution.Types.SetupBuildInfo.Lens
-    Distribution.Types.SourceRepo.Lens
-    Distribution.Types.TestSuite.Lens
 
   other-modules:
     Distribution.Backpack.PreExistingComponent
@@ -325,12 +181,9 @@ library
     Distribution.Backpack.UnifyM
     Distribution.Backpack.Id
     Distribution.Utils.UnionFind
-    Distribution.Utils.Base62
     Distribution.Compat.Async
     Distribution.Compat.CopyFile
     Distribution.Compat.GetShortPathName
-    Distribution.Compat.MonadFail
-    Distribution.Compat.Prelude
     Distribution.Compat.SnocList
     Distribution.GetOpt
     Distribution.Lex
@@ -342,11 +195,6 @@ library
     Distribution.ZinzaPrelude
     Paths_Cabal
 
-  if flag(bundled-binary-generic)
-    other-modules:
-      Distribution.Compat.Binary.Class
-      Distribution.Compat.Binary.Generic
-
   other-extensions:
     BangPatterns
     CPP
diff --git a/Cabal/src/Distribution/Simple.hs b/Cabal/src/Distribution/Simple.hs
index a8e6aeb373ea76aae4c9fe1bd7d8fe1bd356cf16..be2d71d564fda92103200c1787fe3a9447fbe21b 100644
--- a/Cabal/src/Distribution/Simple.hs
+++ b/Cabal/src/Distribution/Simple.hs
@@ -67,6 +67,7 @@ import Distribution.Simple.UserHooks
 import Distribution.Package
 import Distribution.PackageDescription
 import Distribution.PackageDescription.Configuration
+import Distribution.Simple.PackageDescription
 import Distribution.Simple.Program
 import Distribution.Simple.Program.Db
 import Distribution.Simple.PreProcess
@@ -110,7 +111,6 @@ import Distribution.Compat.GetShortPathName (getShortPathName)
 
 import Data.List       (unionBy, (\\))
 
-import Distribution.PackageDescription.Parsec
 
 -- | A simple implementation of @main@ for a Cabal setup script.
 -- It reads the package description file using IO, and performs the
diff --git a/Cabal/src/Distribution/Simple/PackageDescription.hs b/Cabal/src/Distribution/Simple/PackageDescription.hs
new file mode 100644
index 0000000000000000000000000000000000000000..4c64aedf767bf01ec4c4649c1f2fd15222ae0e38
--- /dev/null
+++ b/Cabal/src/Distribution/Simple/PackageDescription.hs
@@ -0,0 +1,74 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Distribution.Simple.PackageDescription
+-- Copyright   :  Isaac Jones 2003-2005
+-- License     :  BSD3
+--
+-- Maintainer  :  cabal-devel@haskell.org
+-- Portability :  portable
+--
+-- This defines parsers for the @.cabal@ format
+
+module Distribution.Simple.PackageDescription (
+    -- * Read and Parse files
+    readGenericPackageDescription,
+    readHookedBuildInfo,
+
+    -- * Utility Parsing function
+    parseString,
+    ) where
+
+import Prelude ()
+import Distribution.Compat.Prelude
+
+import Distribution.Fields.ParseResult
+import Distribution.PackageDescription
+import Distribution.PackageDescription.Parsec
+import Distribution.Parsec.Error    (showPError)
+import Distribution.Parsec.Warning  (showPWarning)
+import Distribution.Simple.Utils
+import Distribution.Verbosity
+
+import qualified Data.ByteString    as BS
+import System.Directory (doesFileExist)
+
+readGenericPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
+readGenericPackageDescription = readAndParseFile parseGenericPackageDescription
+
+readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
+readHookedBuildInfo = readAndParseFile parseHookedBuildInfo
+
+-- | Helper combinator to do parsing plumbing for files.
+--
+-- Given a parser and a filename, return the parse of the file,
+-- after checking if the file exists.
+--
+-- Argument order is chosen to encourage partial application.
+readAndParseFile
+    :: (BS.ByteString -> ParseResult a)  -- ^ File contents to final value parser
+    -> Verbosity                         -- ^ Verbosity level
+    -> FilePath                          -- ^ File to read
+    -> IO a
+readAndParseFile parser verbosity fpath = do
+    exists <- doesFileExist fpath
+    unless exists $
+      die' verbosity $
+        "Error Parsing: file \"" ++ fpath ++ "\" doesn't exist. Cannot continue."
+    bs <- BS.readFile fpath
+    parseString parser verbosity fpath bs
+
+parseString
+    :: (BS.ByteString -> ParseResult a)  -- ^ File contents to final value parser
+    -> Verbosity                         -- ^ Verbosity level
+    -> String                            -- ^ File name
+    -> BS.ByteString
+    -> IO a
+parseString parser verbosity name bs = do
+    let (warnings, result) = runParseResult (parser bs)
+    traverse_ (warn verbosity . showPWarning name) warnings
+    case result of
+        Right x -> return x
+        Left (_, errors) -> do
+            traverse_ (warn verbosity . showPError name) errors
+            die' verbosity $ "Failed parsing \"" ++ name ++ "\"."
+
diff --git a/Makefile b/Makefile
index da57dcc4e7d4b9cb5bf20834c30874f93786e6ad..9af2ede2215534caa4f639b968b196684829a6e6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ lib-ghc-7.8 :
 
 # source generation: Lexer
 
-LEXER_HS:=Cabal/src/Distribution/Fields/Lexer.hs
+LEXER_HS:=Cabal-syntax/src/Distribution/Fields/Lexer.hs
 
 lexer : $(LEXER_HS)
 
@@ -34,8 +34,8 @@ $(LEXER_HS) : templates/Lexer.x
 
 # source generation: SPDX
 
-SPDX_LICENSE_HS:=Cabal/src/Distribution/SPDX/LicenseId.hs
-SPDX_EXCEPTION_HS:=Cabal/src/Distribution/SPDX/LicenseExceptionId.hs
+SPDX_LICENSE_HS:=Cabal-syntax/src/Distribution/SPDX/LicenseId.hs
+SPDX_EXCEPTION_HS:=Cabal-syntax/src/Distribution/SPDX/LicenseExceptionId.hs
 
 spdx : $(SPDX_LICENSE_HS) $(SPDX_EXCEPTION_HS)
 
@@ -68,7 +68,7 @@ buildinfo-fields-reference : phony
 
 # analyse-imports
 analyse-imports : phony
-	find Cabal/src cabal-install/src -type f -name '*.hs' | xargs cabal v2-run --builddir=dist-newstyle-meta --project-file=cabal.project.meta analyse-imports --
+	find Cabal-syntax/src Cabal/src cabal-install/src -type f -name '*.hs' | xargs cabal v2-run --builddir=dist-newstyle-meta --project-file=cabal.project.meta analyse-imports --
 
 # github actions
 github-actions : .github/workflows/quick-jobs.yml
@@ -91,7 +91,7 @@ ghcid-cli :
 # doctests (relies on .ghc.environment files)
 
 doctest :
-	doctest --fast Cabal/src
+	doctest --fast Cabal-syntax/src Cabal/src
 
 # This is not run as part of validate.sh (we need hackage-security, which is tricky to get).
 doctest-cli :
@@ -208,7 +208,7 @@ weeder :
 # tags
 .PHONY : tags
 tags :
-	hasktags -b Cabal/src Cabal-described/src cabal-install/src cabal-testsuite/src
+	hasktags -b Cabal-syntax/src Cabal/src Cabal-described/src cabal-install/src cabal-testsuite/src
 
 # boostrapping
 ##############################################################################
diff --git a/README.md b/README.md
index da10194360a0b78e3f53fac33dcbae2d23d269a4..430fa9bc117e95506b038845f7c5ac3f0195b94b 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@
 This Cabal Git repository contains the following packages:
 
  * [Cabal](Cabal/README.md): the Cabal library package ([license](Cabal/LICENSE))
+ * [Cabal-syntax](Cabal-syntax/README.md): the `.cabal` file format library ([license](Cabal-syntax/LICENSE)
  * [cabal-install](cabal-install/README.md): the package containing the `cabal` tool ([license](cabal-install/LICENSE))
 
 The canonical upstream repository is located at
diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py
index be98776ae26469c25dedd5745266cc18f0e65ced..8658dad306bf590831ceb4057fef3d04ea87f0c8 100755
--- a/bootstrap/bootstrap.py
+++ b/bootstrap/bootstrap.py
@@ -187,6 +187,8 @@ def install_dep(dep: BootstrapDep, ghc: Compiler) -> None:
     elif dep.source == PackageSource.LOCAL:
         if dep.package == 'Cabal':
             sdist_dir = Path('Cabal').resolve()
+        elif dep.package == 'Cabal-syntax':
+            sdist_dir = Path('Cabal-syntax').resolve()
         elif dep.package == 'cabal-install-solver':
             sdist_dir = Path('cabal-install-solver').resolve()
         elif dep.package == 'cabal-install':
diff --git a/bootstrap/linux-8.10.7.json b/bootstrap/linux-8.10.7.json
index 7b5d5026525f31f3ae593f123c453977777c2d10..8e6055aee78f230ca2ed8e3e5d5ca558befff4b1 100644
--- a/bootstrap/linux-8.10.7.json
+++ b/bootstrap/linux-8.10.7.json
@@ -1,49 +1,58 @@
 {
     "dependencies": [
         {
-            "source": "local",
-            "package": "Cabal",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-bundled-binary-generic"
             ],
+            "package": "Cabal-syntax",
+            "source": "local",
+            "version": "3.7.0.0"
+        },
+        {
             "cabal_sha256": null,
+            "revision": null,
             "src_sha256": null,
-            "revision": null
+            "flags": [],
+            "package": "Cabal",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "network",
-            "version": "3.1.2.2",
+            "cabal_sha256": "e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568",
+            "revision": 0,
+            "src_sha256": "7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85",
             "flags": [
                 "-devel"
             ],
-            "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06",
-            "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6",
-            "revision": 0
+            "package": "network",
+            "source": "hackage",
+            "version": "3.1.2.7"
         },
         {
-            "source": "hackage",
-            "package": "th-compat",
-            "version": "0.1.3",
-            "flags": [],
             "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993",
+            "revision": 0,
             "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6",
-            "revision": 0
+            "flags": [],
+            "package": "th-compat",
+            "source": "hackage",
+            "version": "0.1.3"
         },
         {
-            "source": "hackage",
-            "package": "network-uri",
-            "version": "2.6.4.1",
-            "flags": [],
             "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d",
+            "revision": 0,
             "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584",
-            "revision": 0
+            "flags": [],
+            "package": "network-uri",
+            "source": "hackage",
+            "version": "2.6.4.1"
         },
         {
-            "source": "hackage",
-            "package": "HTTP",
-            "version": "4000.3.16",
+            "cabal_sha256": "6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71",
+            "revision": 1,
+            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
             "flags": [
                 "-conduit10",
                 "-mtl1",
@@ -51,233 +60,234 @@
                 "-warn-as-error",
                 "-warp-tests"
             ],
-            "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093",
-            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
-            "revision": 0
+            "package": "HTTP",
+            "source": "hackage",
+            "version": "4000.3.16"
         },
         {
-            "source": "hackage",
-            "package": "hashable",
-            "version": "1.3.3.0",
+            "cabal_sha256": "3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7",
+            "revision": 1,
+            "src_sha256": "baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886",
             "flags": [
                 "+integer-gmp",
                 "-random-initial-seed"
             ],
-            "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4",
-            "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc",
-            "revision": 0
+            "package": "hashable",
+            "source": "hackage",
+            "version": "1.3.5.0"
         },
         {
-            "source": "hackage",
-            "package": "async",
-            "version": "2.2.3",
+            "cabal_sha256": "b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0",
+            "revision": 1,
+            "src_sha256": "484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725",
             "flags": [
                 "-bench"
             ],
-            "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b",
-            "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c",
-            "revision": 0
+            "package": "async",
+            "source": "hackage",
+            "version": "2.2.4"
         },
         {
-            "source": "hackage",
-            "package": "base16-bytestring",
-            "version": "1.0.1.0",
+            "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+            "revision": 0,
+            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
             "flags": [],
-            "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54",
-            "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa",
-            "revision": 0
+            "package": "base16-bytestring",
+            "source": "hackage",
+            "version": "1.0.2.0"
         },
         {
-            "source": "hackage",
-            "package": "base64-bytestring",
-            "version": "1.2.1.0",
-            "flags": [],
             "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8",
+            "revision": 0,
             "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "revision": 0
+            "flags": [],
+            "package": "base64-bytestring",
+            "source": "hackage",
+            "version": "1.2.1.0"
         },
         {
-            "source": "hackage",
-            "package": "splitmix",
-            "version": "0.1.0.3",
+            "cabal_sha256": "714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1",
+            "revision": 0,
+            "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
             "flags": [
                 "-optimised-mixer"
             ],
-            "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c",
-            "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35",
-            "revision": 0
+            "package": "splitmix",
+            "source": "hackage",
+            "version": "0.1.0.4"
         },
         {
-            "source": "hackage",
-            "package": "random",
-            "version": "1.2.0",
+            "cabal_sha256": "8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2",
+            "revision": 0,
+            "src_sha256": "265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457",
             "flags": [],
-            "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3",
-            "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de",
-            "revision": 6
+            "package": "random",
+            "source": "hackage",
+            "version": "1.2.1"
         },
         {
-            "source": "hackage",
-            "package": "edit-distance",
-            "version": "0.2.2.1",
-            "flags": [],
             "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+            "revision": 1,
             "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "revision": 1
+            "flags": [],
+            "package": "edit-distance",
+            "source": "hackage",
+            "version": "0.2.2.1"
         },
         {
-            "source": "local",
-            "package": "cabal-install-solver",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-debug-conflict-sets",
                 "-debug-expensive-assertions",
                 "-debug-tracetree"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install-solver",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "cryptohash-sha256",
-            "version": "0.11.102.0",
+            "cabal_sha256": "188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332",
+            "revision": 0,
+            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
             "flags": [
                 "-exe",
                 "+use-cbits"
             ],
-            "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c",
-            "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519",
-            "revision": 1
+            "package": "cryptohash-sha256",
+            "source": "hackage",
+            "version": "0.11.102.1"
         },
         {
-            "source": "hackage",
-            "package": "echo",
-            "version": "0.1.4",
+            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+            "revision": 0,
+            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
             "flags": [
                 "-example"
             ],
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "revision": 0
+            "package": "echo",
+            "source": "hackage",
+            "version": "0.1.4"
         },
         {
-            "source": "hackage",
-            "package": "ed25519",
-            "version": "0.0.5.0",
+            "cabal_sha256": "b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb",
+            "revision": 4,
+            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
             "flags": [
                 "+no-donna",
                 "+test-doctests",
                 "+test-hlint",
                 "+test-properties"
             ],
-            "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "revision": 3
+            "package": "ed25519",
+            "source": "hackage",
+            "version": "0.0.5.0"
         },
         {
-            "source": "hackage",
-            "package": "lukko",
-            "version": "0.1.1.3",
+            "cabal_sha256": "c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0",
+            "revision": 2,
+            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
             "flags": [
                 "+ofd-locking"
             ],
-            "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856",
-            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
-            "revision": 1
+            "package": "lukko",
+            "source": "hackage",
+            "version": "0.1.1.3"
         },
         {
-            "source": "hackage",
-            "package": "tar",
-            "version": "0.5.1.1",
+            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
+            "revision": 4,
+            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
             "flags": [
                 "-old-bytestring",
                 "-old-time"
             ],
-            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
-            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
-            "revision": 4
+            "package": "tar",
+            "source": "hackage",
+            "version": "0.5.1.1"
         },
         {
-            "source": "hackage",
-            "package": "zlib",
-            "version": "0.6.2.3",
+            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
+            "revision": 1,
+            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
             "flags": [
                 "-bundled-c-zlib",
                 "-non-blocking-ffi",
                 "-pkg-config"
             ],
-            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
-            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
-            "revision": 1
+            "package": "zlib",
+            "source": "hackage",
+            "version": "0.6.2.3"
         },
         {
-            "source": "hackage",
-            "package": "hackage-security",
-            "version": "0.6.0.1",
+            "cabal_sha256": "c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137",
+            "revision": 0,
+            "src_sha256": "081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb",
             "flags": [
                 "+base48",
+                "+cabal-syntax",
                 "+lukko",
                 "-mtl21",
                 "-old-directory",
                 "+use-network-uri"
             ],
-            "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6",
-            "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17",
-            "revision": 8
+            "package": "hackage-security",
+            "source": "hackage",
+            "version": "0.6.2.0"
         },
         {
-            "source": "hackage",
-            "package": "regex-base",
-            "version": "0.94.0.1",
+            "cabal_sha256": "2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce",
+            "revision": 0,
+            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
             "flags": [],
-            "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7",
-            "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9",
-            "revision": 1
+            "package": "regex-base",
+            "source": "hackage",
+            "version": "0.94.0.2"
         },
         {
-            "source": "hackage",
-            "package": "regex-posix",
-            "version": "0.96.0.1",
+            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
+            "revision": 0,
+            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
             "flags": [
                 "-_regex-posix-clib"
             ],
-            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "revision": 0
+            "package": "regex-posix",
+            "source": "hackage",
+            "version": "0.96.0.1"
         },
         {
-            "source": "hackage",
-            "package": "resolv",
-            "version": "0.1.2.0",
-            "flags": [],
-            "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529",
+            "cabal_sha256": "2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4",
+            "revision": 4,
             "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671",
-            "revision": 3
+            "flags": [],
+            "package": "resolv",
+            "source": "hackage",
+            "version": "0.1.2.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         }
     ],
     "builtin": [
diff --git a/bootstrap/linux-8.10.7.plan.json b/bootstrap/linux-8.10.7.plan.json
index ed407e5c0da8a610f6d41068ef290c8ec48a53dd..ee62a1e8c7429530486fa227ec4e2b7851b27c00 100644
--- a/bootstrap/linux-8.10.7.plan.json
+++ b/bootstrap/linux-8.10.7.plan.json
@@ -1 +1 @@
-{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.10.7","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/Cabal"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/Cabal-3.7.0.0","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-5f6275caecf12e48f2f9d06c53a350d94b720cb4adb35ff683a388d13ba52990","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.14.3.0"]},{"type":"configured","id":"async-2.2.3-da75efb87ab7f2c69a101643f42f1d30b2728f802b30b2730accc0175acf016f","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.14.3.0","hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","stm-2.5.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.14.3.0","pkg-name":"base","pkg-version":"4.14.3.0","depends":["ghc-prim-0.6.1","integer-gmp-1.0.3.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.8.0","pkg-name":"binary","pkg-version":"0.8.8.0","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.10.12.0","pkg-name":"bytestring","pkg-version":"0.10.12.0","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","HTTP-4000.3.16-5f6275caecf12e48f2f9d06c53a350d94b720cb4adb35ff683a388d13ba52990","array-0.5.4.0","async-2.2.3-da75efb87ab7f2c69a101643f42f1d30b2728f802b30b2730accc0175acf016f","base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","binary-0.8.8.0","bytestring-0.10.12.0","cabal-install-solver-3.7.0.0-inplace","containers-0.6.5.1","cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","edit-distance-0.2.2.1-cd09713a9167df2f517b6f7ca3fca0adeea52cdfee278163f94d16190cd83471","exceptions-0.10.4","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","mtl-2.2.2","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f","regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c","regex-posix-0.96.0.1-b01c35d5901f0e00932574b92090724cbef08dfb70433d0bf47d4cb40bfbfaaa","resolv-0.1.2.0-fa5d5cb715ba5691e47799dacf9a47c356bdfa2966301a030531d89096a6167d","stm-2.5.0.1","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","base-4.14.3.0","cabal-install-3.7.0.0-inplace","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install-solver"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","edit-distance-0.2.2.1-cd09713a9167df2f517b6f7ca3fca0adeea52cdfee278163f94d16190cd83471","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.14.3.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.14.3.0","process-1.6.13.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.14.3.0","bytestring-0.10.12.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-cd09713a9167df2f517b6f7ca3fca0adeea52cdfee278163f94d16190cd83471","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.14.3.0","containers-0.6.5.1","random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"exceptions-0.10.4","pkg-name":"exceptions","pkg-version":"0.10.4","depends":["base-4.14.3.0","mtl-2.2.2","stm-2.5.0.1","template-haskell-2.16.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.10.7","pkg-name":"ghc-boot-th","pkg-version":"8.10.7","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-prim-0.6.1","pkg-name":"ghc-prim","pkg-version":"0.6.1","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/hackage-security-0.6.0.1","depends":["Cabal-3.7.0.0-inplace","base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","bytestring-0.10.12.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","directory-1.3.6.0","ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","filepath-1.4.2.1","ghc-prim-0.6.1","lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","mtl-2.2.2","network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","template-haskell-2.16.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.14.3.0","containers-0.6.5.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.13.2"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/mikolaj/.cabal/store/ghc-8.10.7/hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.3.0","pkg-name":"integer-gmp","pkg-version":"1.0.3.0","depends":["ghc-prim-0.6.1"]},{"type":"configured","id":"lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.14.3.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.14.3.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107"]}}},{"type":"configured","id":"network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.14.3.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.16.0.0","th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","text-1.2.4.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1"]},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.14.3.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-ea3085a505c71722909b9aaac572a309c1a1430c785391ad5df25c21334bd11f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","mtl-2.2.2","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-b01c35d5901f0e00932574b92090724cbef08dfb70433d0bf47d4cb40bfbfaaa","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-fa5d5cb715ba5691e47799dacf9a47c356bdfa2966301a030531d89096a6167d","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.1","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-ea3085a505c71722909b9aaac572a309c1a1430c785391ad5df25c21334bd11f","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.14.3.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.1","pkg-name":"stm","pkg-version":"2.5.0.1","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"configured","id":"tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.16.0.0","pkg-name":"template-haskell","pkg-version":"2.16.0.0","depends":["base-4.14.3.0","ghc-boot-th-8.10.7","ghc-prim-0.6.1","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.1","pkg-name":"text","pkg-version":"1.2.4.1","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","template-haskell-2.16.0.0"]},{"type":"configured","id":"th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.14.3.0","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.14.3.0","bytestring-0.10.12.0","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.10.7","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/Cabal-3.7.0.0","depends":["Cabal-syntax-3.7.0.0-inplace","array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.7.0.0-inplace","pkg-name":"Cabal-syntax","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal-syntax"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/Cabal-syntax-3.7.0.0","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-9e81527472935e8dd33d388978208a63c2c663a192aef318739595e97485726d","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","network-3.1.2.7-2d72df787370b1f16d6201e748b2276c2e80f11c5a492979e113b32cf6851dd5","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.14.3.0"]},{"type":"configured","id":"async-2.2.4-38402ff980e55904b4ab722869d878d87179f57f62aa1941c5b99f6485d395dc","pkg-name":"async","pkg-version":"2.2.4","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","pkg-src-sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","depends":["base-4.14.3.0","hashable-1.3.5.0-38ac512a8fca7331205e4a466b18225a1140d2f7309381fd440283069fc8b154","stm-2.5.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.14.3.0","pkg-name":"base","pkg-version":"4.14.3.0","depends":["ghc-prim-0.6.1","integer-gmp-1.0.3.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-70aa3bac4d0b73533e1209155fdef8d1d52241185b590a3762ddab4fe7278b61","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.8.0","pkg-name":"binary","pkg-version":"0.8.8.0","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.10.12.0","pkg-name":"bytestring","pkg-version":"0.10.12.0","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","HTTP-4000.3.16-9e81527472935e8dd33d388978208a63c2c663a192aef318739595e97485726d","array-0.5.4.0","async-2.2.4-38402ff980e55904b4ab722869d878d87179f57f62aa1941c5b99f6485d395dc","base-4.14.3.0","base16-bytestring-1.0.2.0-70aa3bac4d0b73533e1209155fdef8d1d52241185b590a3762ddab4fe7278b61","binary-0.8.8.0","bytestring-0.10.12.0","cabal-install-solver-3.7.0.0-inplace","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-b7a551372a693f86d20a41b71c855fc42fda023dffe9c298ae27a04d47c48de8","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","edit-distance-0.2.2.1-0a65876af340225be4724335ee6559c9d7dcb5adefe9439b0c720e0709f192e8","exceptions-0.10.4","filepath-1.4.2.1","hackage-security-0.6.2.0-inplace","hashable-1.3.5.0-38ac512a8fca7331205e4a466b18225a1140d2f7309381fd440283069fc8b154","lukko-0.1.1.3-195fd1edcb01903fdb8723aaf4d8e621608926c56eb1d3987e143cb0f61c3c65","mtl-2.2.2","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","random-1.2.1-9241b7d4b7bedafddc08af1f75ab0cf10f6509e30a6ca9372df2a6af5d56c821","regex-base-0.94.0.2-85b27aba5c4c8c05a3e5d9719e49e080d06e9e8e205800e5b62856a178a3ea9f","regex-posix-0.96.0.1-a15011b9fb031ddbd0acd4da982b836deac36835bd0ff14f2512d5b86b24f734","resolv-0.1.2.0-d5ed78dd184b16d14586f7efc0f4d608fb48494d5e484f4dd7d47ce6eb7bc941","stm-2.5.0.1","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","base-4.14.3.0","cabal-install-3.7.0.0-inplace","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install-solver"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","edit-distance-0.2.2.1-0a65876af340225be4724335ee6559c9d7dcb5adefe9439b0c720e0709f192e8","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-b7a551372a693f86d20a41b71c855fc42fda023dffe9c298ae27a04d47c48de8","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.14.3.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.14.3.0","process-1.6.13.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.14.3.0","bytestring-0.10.12.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-0a65876af340225be4724335ee6559c9d7dcb5adefe9439b0c720e0709f192e8","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.14.3.0","containers-0.6.5.1","random-1.2.1-9241b7d4b7bedafddc08af1f75ab0cf10f6509e30a6ca9372df2a6af5d56c821"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"exceptions-0.10.4","pkg-name":"exceptions","pkg-version":"0.10.4","depends":["base-4.14.3.0","mtl-2.2.2","stm-2.5.0.1","template-haskell-2.16.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.10.7","pkg-name":"ghc-boot-th","pkg-version":"8.10.7","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-prim-0.6.1","pkg-name":"ghc-prim","pkg-version":"0.6.1","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.2.0-inplace","pkg-name":"hackage-security","pkg-version":"0.6.2.0","flags":{"base48":true,"cabal-syntax":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137","pkg-src-sha256":"081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb","dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/hackage-security-0.6.2.0","depends":["Cabal-syntax-3.7.0.0-inplace","base-4.14.3.0","base16-bytestring-1.0.2.0-70aa3bac4d0b73533e1209155fdef8d1d52241185b590a3762ddab4fe7278b61","base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","bytestring-0.10.12.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.1-b7a551372a693f86d20a41b71c855fc42fda023dffe9c298ae27a04d47c48de8","directory-1.3.6.0","ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","filepath-1.4.2.1","ghc-prim-0.6.1","lukko-0.1.1.3-195fd1edcb01903fdb8723aaf4d8e621608926c56eb1d3987e143cb0f61c3c65","mtl-2.2.2","network-3.1.2.7-2d72df787370b1f16d6201e748b2276c2e80f11c5a492979e113b32cf6851dd5","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","template-haskell-2.16.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.5.0-38ac512a8fca7331205e4a466b18225a1140d2f7309381fd440283069fc8b154","pkg-name":"hashable","pkg-version":"1.3.5.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","pkg-src-sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","depends":["base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.8-e-hsc2hs-d18ce01474ef463552864ad1bba448558b2bdd3f8c058d7ed1ebcc62c9423db9","pkg-name":"hsc2hs","pkg-version":"0.68.8","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"27a5e694efcc2133761de2a0c8079596b0fb62aef0be472afad7d60df6fa68d5","pkg-src-sha256":"78341efbc917a84a07f2143bee9203e2555072054d495717aa73d89d9df77a52","depends":["base-4.14.3.0","containers-0.6.5.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.13.2"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/patrick/.cabal/store/ghc-8.10.7/hsc2hs-0.68.8-e-hsc2hs-d18ce01474ef463552864ad1bba448558b2bdd3f8c058d7ed1ebcc62c9423db9/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.3.0","pkg-name":"integer-gmp","pkg-version":"1.0.3.0","depends":["ghc-prim-0.6.1"]},{"type":"configured","id":"lukko-0.1.1.3-195fd1edcb01903fdb8723aaf4d8e621608926c56eb1d3987e143cb0f61c3c65","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.14.3.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-d18ce01474ef463552864ad1bba448558b2bdd3f8c058d7ed1ebcc62c9423db9"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.14.3.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.7-2d72df787370b1f16d6201e748b2276c2e80f11c5a492979e113b32cf6851dd5","pkg-name":"network","pkg-version":"3.1.2.7","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","pkg-src-sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","components":{"lib":{"depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-d18ce01474ef463552864ad1bba448558b2bdd3f8c058d7ed1ebcc62c9423db9"]}}},{"type":"configured","id":"network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.14.3.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.16.0.0","th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","text-1.2.4.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1"]},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.14.3.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1-9241b7d4b7bedafddc08af1f75ab0cf10f6509e30a6ca9372df2a6af5d56c821","pkg-name":"random","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","pkg-src-sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.4-ecf05af7ba88b161057dd38db998065e9449310e23cbacac97d6a6e83c32b8d5"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.2-85b27aba5c4c8c05a3e5d9719e49e080d06e9e8e205800e5b62856a178a3ea9f","pkg-name":"regex-base","pkg-version":"0.94.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","pkg-src-sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-a15011b9fb031ddbd0acd4da982b836deac36835bd0ff14f2512d5b86b24f734","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","regex-base-0.94.0.2-85b27aba5c4c8c05a3e5d9719e49e080d06e9e8e205800e5b62856a178a3ea9f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-d5ed78dd184b16d14586f7efc0f4d608fb48494d5e484f4dd7d47ce6eb7bc941","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.14.3.0","base16-bytestring-1.0.2.0-70aa3bac4d0b73533e1209155fdef8d1d52241185b590a3762ddab4fe7278b61","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.1","depends":[]},{"type":"configured","id":"splitmix-0.1.0.4-ecf05af7ba88b161057dd38db998065e9449310e23cbacac97d6a6e83c32b8d5","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.14.3.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.1","pkg-name":"stm","pkg-version":"2.5.0.1","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"configured","id":"tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.16.0.0","pkg-name":"template-haskell","pkg-version":"2.16.0.0","depends":["base-4.14.3.0","ghc-boot-th-8.10.7","ghc-prim-0.6.1","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.1","pkg-name":"text","pkg-version":"1.2.4.1","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","template-haskell-2.16.0.0"]},{"type":"configured","id":"th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.14.3.0","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.14.3.0","bytestring-0.10.12.0","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/bootstrap/linux-8.6.5.json b/bootstrap/linux-8.6.5.json
index daa71a4990b12c4bddc384bb72fdb54df30f1b7c..be20af83981d32b38be7b1c86d56e25e5ae518b3 100644
--- a/bootstrap/linux-8.6.5.json
+++ b/bootstrap/linux-8.6.5.json
@@ -1,49 +1,58 @@
 {
     "dependencies": [
         {
-            "source": "local",
-            "package": "Cabal",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-bundled-binary-generic"
             ],
+            "package": "Cabal-syntax",
+            "source": "local",
+            "version": "3.7.0.0"
+        },
+        {
             "cabal_sha256": null,
+            "revision": null,
             "src_sha256": null,
-            "revision": null
+            "flags": [],
+            "package": "Cabal",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "network",
-            "version": "3.1.2.2",
+            "cabal_sha256": "e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568",
+            "revision": 0,
+            "src_sha256": "7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85",
             "flags": [
                 "-devel"
             ],
-            "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06",
-            "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6",
-            "revision": 0
+            "package": "network",
+            "source": "hackage",
+            "version": "3.1.2.7"
         },
         {
-            "source": "hackage",
-            "package": "th-compat",
-            "version": "0.1.3",
-            "flags": [],
             "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993",
+            "revision": 0,
             "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6",
-            "revision": 0
+            "flags": [],
+            "package": "th-compat",
+            "source": "hackage",
+            "version": "0.1.3"
         },
         {
-            "source": "hackage",
-            "package": "network-uri",
-            "version": "2.6.4.1",
-            "flags": [],
             "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d",
+            "revision": 0,
             "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584",
-            "revision": 0
+            "flags": [],
+            "package": "network-uri",
+            "source": "hackage",
+            "version": "2.6.4.1"
         },
         {
-            "source": "hackage",
-            "package": "HTTP",
-            "version": "4000.3.16",
+            "cabal_sha256": "6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71",
+            "revision": 1,
+            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
             "flags": [
                 "-conduit10",
                 "-mtl1",
@@ -51,244 +60,245 @@
                 "-warn-as-error",
                 "-warp-tests"
             ],
-            "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093",
-            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
-            "revision": 0
+            "package": "HTTP",
+            "source": "hackage",
+            "version": "4000.3.16"
         },
         {
-            "source": "hackage",
-            "package": "hashable",
-            "version": "1.3.3.0",
+            "cabal_sha256": "3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7",
+            "revision": 1,
+            "src_sha256": "baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886",
             "flags": [
                 "+integer-gmp",
                 "-random-initial-seed"
             ],
-            "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4",
-            "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc",
-            "revision": 0
+            "package": "hashable",
+            "source": "hackage",
+            "version": "1.3.5.0"
         },
         {
-            "source": "hackage",
-            "package": "async",
-            "version": "2.2.3",
+            "cabal_sha256": "b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0",
+            "revision": 1,
+            "src_sha256": "484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725",
             "flags": [
                 "-bench"
             ],
-            "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b",
-            "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c",
-            "revision": 0
+            "package": "async",
+            "source": "hackage",
+            "version": "2.2.4"
         },
         {
-            "source": "hackage",
-            "package": "base16-bytestring",
-            "version": "1.0.1.0",
+            "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+            "revision": 0,
+            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
             "flags": [],
-            "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54",
-            "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa",
-            "revision": 0
+            "package": "base16-bytestring",
+            "source": "hackage",
+            "version": "1.0.2.0"
         },
         {
-            "source": "hackage",
-            "package": "base64-bytestring",
-            "version": "1.2.1.0",
-            "flags": [],
             "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8",
+            "revision": 0,
             "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "revision": 0
+            "flags": [],
+            "package": "base64-bytestring",
+            "source": "hackage",
+            "version": "1.2.1.0"
         },
         {
-            "source": "hackage",
-            "package": "splitmix",
-            "version": "0.1.0.3",
+            "cabal_sha256": "714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1",
+            "revision": 0,
+            "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
             "flags": [
                 "-optimised-mixer"
             ],
-            "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c",
-            "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35",
-            "revision": 0
+            "package": "splitmix",
+            "source": "hackage",
+            "version": "0.1.0.4"
         },
         {
-            "source": "hackage",
-            "package": "random",
-            "version": "1.2.0",
+            "cabal_sha256": "8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2",
+            "revision": 0,
+            "src_sha256": "265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457",
             "flags": [],
-            "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3",
-            "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de",
-            "revision": 6
+            "package": "random",
+            "source": "hackage",
+            "version": "1.2.1"
         },
         {
-            "source": "hackage",
-            "package": "edit-distance",
-            "version": "0.2.2.1",
-            "flags": [],
             "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+            "revision": 1,
             "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "revision": 1
+            "flags": [],
+            "package": "edit-distance",
+            "source": "hackage",
+            "version": "0.2.2.1"
         },
         {
-            "source": "local",
-            "package": "cabal-install-solver",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-debug-conflict-sets",
                 "-debug-expensive-assertions",
                 "-debug-tracetree"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install-solver",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "cryptohash-sha256",
-            "version": "0.11.102.0",
+            "cabal_sha256": "188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332",
+            "revision": 0,
+            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
             "flags": [
                 "-exe",
                 "+use-cbits"
             ],
-            "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c",
-            "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519",
-            "revision": 1
+            "package": "cryptohash-sha256",
+            "source": "hackage",
+            "version": "0.11.102.1"
         },
         {
-            "source": "hackage",
-            "package": "echo",
-            "version": "0.1.4",
+            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+            "revision": 0,
+            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
             "flags": [
                 "-example"
             ],
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "revision": 0
+            "package": "echo",
+            "source": "hackage",
+            "version": "0.1.4"
         },
         {
-            "source": "hackage",
-            "package": "exceptions",
-            "version": "0.10.4",
+            "cabal_sha256": "7ed09aed03683d5b4337088061106c2389d274b3472031a330ff1b220bad2b2d",
+            "revision": 3,
+            "src_sha256": "4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf",
             "flags": [
                 "+transformers-0-4"
             ],
-            "cabal_sha256": "d2546046d7ba4b460d3bc7fd269cd2c52d0b7fb3cfecc038715dd0881b78a484",
-            "src_sha256": "4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf",
-            "revision": 2
+            "package": "exceptions",
+            "source": "hackage",
+            "version": "0.10.4"
         },
         {
-            "source": "hackage",
-            "package": "ed25519",
-            "version": "0.0.5.0",
+            "cabal_sha256": "b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb",
+            "revision": 4,
+            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
             "flags": [
                 "+no-donna",
                 "+test-doctests",
                 "+test-hlint",
                 "+test-properties"
             ],
-            "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "revision": 3
+            "package": "ed25519",
+            "source": "hackage",
+            "version": "0.0.5.0"
         },
         {
-            "source": "hackage",
-            "package": "lukko",
-            "version": "0.1.1.3",
+            "cabal_sha256": "c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0",
+            "revision": 2,
+            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
             "flags": [
                 "+ofd-locking"
             ],
-            "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856",
-            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
-            "revision": 1
+            "package": "lukko",
+            "source": "hackage",
+            "version": "0.1.1.3"
         },
         {
-            "source": "hackage",
-            "package": "tar",
-            "version": "0.5.1.1",
+            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
+            "revision": 4,
+            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
             "flags": [
                 "-old-bytestring",
                 "-old-time"
             ],
-            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
-            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
-            "revision": 4
+            "package": "tar",
+            "source": "hackage",
+            "version": "0.5.1.1"
         },
         {
-            "source": "hackage",
-            "package": "zlib",
-            "version": "0.6.2.3",
+            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
+            "revision": 1,
+            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
             "flags": [
                 "-bundled-c-zlib",
                 "-non-blocking-ffi",
                 "-pkg-config"
             ],
-            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
-            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
-            "revision": 1
+            "package": "zlib",
+            "source": "hackage",
+            "version": "0.6.2.3"
         },
         {
-            "source": "hackage",
-            "package": "hackage-security",
-            "version": "0.6.0.1",
+            "cabal_sha256": "c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137",
+            "revision": 0,
+            "src_sha256": "081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb",
             "flags": [
                 "+base48",
+                "+cabal-syntax",
                 "+lukko",
                 "-mtl21",
                 "-old-directory",
                 "+use-network-uri"
             ],
-            "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6",
-            "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17",
-            "revision": 8
+            "package": "hackage-security",
+            "source": "hackage",
+            "version": "0.6.2.0"
         },
         {
-            "source": "hackage",
-            "package": "regex-base",
-            "version": "0.94.0.1",
+            "cabal_sha256": "2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce",
+            "revision": 0,
+            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
             "flags": [],
-            "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7",
-            "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9",
-            "revision": 1
+            "package": "regex-base",
+            "source": "hackage",
+            "version": "0.94.0.2"
         },
         {
-            "source": "hackage",
-            "package": "regex-posix",
-            "version": "0.96.0.1",
+            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
+            "revision": 0,
+            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
             "flags": [
                 "-_regex-posix-clib"
             ],
-            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "revision": 0
+            "package": "regex-posix",
+            "source": "hackage",
+            "version": "0.96.0.1"
         },
         {
-            "source": "hackage",
-            "package": "resolv",
-            "version": "0.1.2.0",
-            "flags": [],
-            "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529",
+            "cabal_sha256": "2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4",
+            "revision": 4,
             "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671",
-            "revision": 3
+            "flags": [],
+            "package": "resolv",
+            "source": "hackage",
+            "version": "0.1.2.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         }
     ],
     "builtin": [
diff --git a/bootstrap/linux-8.6.5.plan.json b/bootstrap/linux-8.6.5.plan.json
index 59bd2d48f56c51400f47aadb42a29937f1a07bbf..b265ba8b9640303855fa7f80b12b61d95a93f106 100644
--- a/bootstrap/linux-8.6.5.plan.json
+++ b/bootstrap/linux-8.6.5.plan.json
@@ -1 +1 @@
-{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.6.5","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/Cabal"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/Cabal-3.7.0.0","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-3772b289391b85de3f38f4dc62bcf7b47c3a6d5037d66240c90e09ad75a8be87","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.3.0","pkg-name":"array","pkg-version":"0.5.3.0","depends":["base-4.12.0.0"]},{"type":"configured","id":"async-2.2.3-0c4091e504ff98e8c820c0865b3e3b6eddd24b20180944c90fbc3ed5e9775e03","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.12.0.0","hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.12.0.0","pkg-name":"base","pkg-version":"4.12.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.6.0","pkg-name":"binary","pkg-version":"0.8.6.0","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1"]},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","HTTP-4000.3.16-3772b289391b85de3f38f4dc62bcf7b47c3a6d5037d66240c90e09ad75a8be87","array-0.5.3.0","async-2.2.3-0c4091e504ff98e8c820c0865b3e3b6eddd24b20180944c90fbc3ed5e9775e03","base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","binary-0.8.6.0","bytestring-0.10.8.2","cabal-install-solver-3.7.0.0-inplace","containers-0.6.0.1","cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","deepseq-1.4.4.0","directory-1.3.3.0","echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","edit-distance-0.2.2.1-7bd6af1f732ef2a1f2b04b4f27ad793f3ed3fa5623ddc8e07a4e489f60cbcee8","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","mtl-2.2.2","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344","regex-posix-0.96.0.1-eba6c312f830e3ee4415cc4d263d6351a350a7d7b5aa3c618242a1bc64eeeece","resolv-0.1.2.0-839f45c81c7fff34820bc93f39bf071c78acc518c5fdaa3e3cfdbf27d1f5e16d","stm-2.5.0.0","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","base-4.12.0.0","cabal-install-3.7.0.0-inplace","directory-1.3.3.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install-solver"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","edit-distance-0.2.2.1-7bd6af1f732ef2a1f2b04b4f27ad793f3ed3fa5623ddc8e07a4e489f60cbcee8","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.0.1","pkg-name":"containers","pkg-version":"0.6.0.1","depends":["array-0.5.3.0","base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"pre-existing","id":"directory-1.3.3.0","pkg-name":"directory","pkg-version":"1.3.3.0","depends":["base-4.12.0.0","filepath-1.4.2.1","time-1.8.0.2","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.12.0.0","process-1.6.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.12.0.0","bytestring-0.10.8.2","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-7bd6af1f732ef2a1f2b04b4f27ad793f3ed3fa5623ddc8e07a4e489f60cbcee8","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","pkg-name":"exceptions","pkg-version":"0.10.4","flags":{"transformers-0-4":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2546046d7ba4b460d3bc7fd269cd2c52d0b7fb3cfecc038715dd0881b78a484","pkg-src-sha256":"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf","depends":["base-4.12.0.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.14.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.6.5","pkg-name":"ghc-boot-th","pkg-version":"8.6.5","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/hackage-security-0.6.0.1","depends":["Cabal-3.7.0.0-inplace","base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","directory-1.3.3.0","ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","mtl-2.2.2","network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","template-haskell-2.14.0.0","time-1.8.0.2","transformers-0.5.6.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","process-1.6.5.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/mikolaj/.cabal/store/ghc-8.6.5/hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.12.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","directory-1.3.3.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"]}}},{"type":"configured","id":"network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.12.0.0","deepseq-1.4.4.0","parsec-3.1.13.0","template-haskell-2.14.0.0","th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","text-1.2.3.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.5.0","pkg-name":"process","pkg-version":"1.6.5.0","depends":["base-4.12.0.0","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","mtl-2.2.2","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-eba6c312f830e3ee4415cc4d263d6351a350a7d7b5aa3c618242a1bc64eeeece","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-839f45c81c7fff34820bc93f39bf071c78acc518c5fdaa3e3cfdbf27d1f5e16d","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.12.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"configured","id":"tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.14.0.0","pkg-name":"template-haskell","pkg-version":"2.14.0.0","depends":["base-4.12.0.0","ghc-boot-th-8.6.5","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.12.0.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.12.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.12.0.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.6.5","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/Cabal-3.7.0.0","depends":["Cabal-syntax-3.7.0.0-inplace","array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.7.0.0-inplace","pkg-name":"Cabal-syntax","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal-syntax"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/Cabal-syntax-3.7.0.0","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-9ad93847fde247438a6e2984fb6b7c7aa11d6e6d95022b2dbf65f59799ce31ca","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","network-3.1.2.7-2b4cb4cf705bab7155e00b699103a19f122a11522725929835b8206424c153fa","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.3.0","pkg-name":"array","pkg-version":"0.5.3.0","depends":["base-4.12.0.0"]},{"type":"configured","id":"async-2.2.4-eaf6ead38a715a9a80a863a19ae4eb6b02adcefb56778cec4a968f62dd6f81bc","pkg-name":"async","pkg-version":"2.2.4","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","pkg-src-sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","depends":["base-4.12.0.0","hashable-1.3.5.0-cf90108c6ac3d94069f72313e840b7fbed69afe6bd4f4ee67b119bb6bc0cbd44","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.12.0.0","pkg-name":"base","pkg-version":"4.12.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-42e3145ac00f8d6082796b716cd7b1ec62b612e16b6813fcff3a6c6ea1913a0f","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.6.0","pkg-name":"binary","pkg-version":"0.8.6.0","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1"]},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","HTTP-4000.3.16-9ad93847fde247438a6e2984fb6b7c7aa11d6e6d95022b2dbf65f59799ce31ca","array-0.5.3.0","async-2.2.4-eaf6ead38a715a9a80a863a19ae4eb6b02adcefb56778cec4a968f62dd6f81bc","base-4.12.0.0","base16-bytestring-1.0.2.0-42e3145ac00f8d6082796b716cd7b1ec62b612e16b6813fcff3a6c6ea1913a0f","binary-0.8.6.0","bytestring-0.10.8.2","cabal-install-solver-3.7.0.0-inplace","containers-0.6.0.1","cryptohash-sha256-0.11.102.1-57321b4bc321fb32a1c95ecc18f3445aa4db8bea827c853dbe35da89df226e40","deepseq-1.4.4.0","directory-1.3.3.0","echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","edit-distance-0.2.2.1-5d98a22d4fe40b42c9b89319fec5f0083c5925a92eb2df1f85a076fcc6122c20","exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","filepath-1.4.2.1","hackage-security-0.6.2.0-inplace","hashable-1.3.5.0-cf90108c6ac3d94069f72313e840b7fbed69afe6bd4f4ee67b119bb6bc0cbd44","lukko-0.1.1.3-a8256bbf263179966e62334bb2ce29fac956558b5fd1e8eeeb552abf2729fefe","mtl-2.2.2","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","random-1.2.1-d6e065809f4766c9fe07e4e79441d59dcc1314f981f4f64060cfc731e3f076d1","regex-base-0.94.0.2-cd3a978a9e3ea5c98e9c97a570ec78ef7a1ebc2123b1aa09a0a8bfc008813ba5","regex-posix-0.96.0.1-a02094608736314eec3f6ff2b04df07d939e04ba1753a570e07de7875ef5189c","resolv-0.1.2.0-43c8b63a21ecc378d443a8b2a00b0c9cb675240d5584576d4b14e6c7742e92dc","stm-2.5.0.0","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","base-4.12.0.0","cabal-install-3.7.0.0-inplace","directory-1.3.3.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install-solver"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","edit-distance-0.2.2.1-5d98a22d4fe40b42c9b89319fec5f0083c5925a92eb2df1f85a076fcc6122c20","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.0.1","pkg-name":"containers","pkg-version":"0.6.0.1","depends":["array-0.5.3.0","base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-57321b4bc321fb32a1c95ecc18f3445aa4db8bea827c853dbe35da89df226e40","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"pre-existing","id":"directory-1.3.3.0","pkg-name":"directory","pkg-version":"1.3.3.0","depends":["base-4.12.0.0","filepath-1.4.2.1","time-1.8.0.2","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.12.0.0","process-1.6.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.12.0.0","bytestring-0.10.8.2","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-5d98a22d4fe40b42c9b89319fec5f0083c5925a92eb2df1f85a076fcc6122c20","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","random-1.2.1-d6e065809f4766c9fe07e4e79441d59dcc1314f981f4f64060cfc731e3f076d1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"exceptions-0.10.4-2e686fdff7a6bdbd62e24641169087c094e991de8ab3f6381a859306fd258e32","pkg-name":"exceptions","pkg-version":"0.10.4","flags":{"transformers-0-4":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7ed09aed03683d5b4337088061106c2389d274b3472031a330ff1b220bad2b2d","pkg-src-sha256":"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf","depends":["base-4.12.0.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.14.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.6.5","pkg-name":"ghc-boot-th","pkg-version":"8.6.5","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.2.0-inplace","pkg-name":"hackage-security","pkg-version":"0.6.2.0","flags":{"base48":true,"cabal-syntax":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137","pkg-src-sha256":"081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb","dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/hackage-security-0.6.2.0","depends":["Cabal-syntax-3.7.0.0-inplace","base-4.12.0.0","base16-bytestring-1.0.2.0-42e3145ac00f8d6082796b716cd7b1ec62b612e16b6813fcff3a6c6ea1913a0f","base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.102.1-57321b4bc321fb32a1c95ecc18f3445aa4db8bea827c853dbe35da89df226e40","directory-1.3.3.0","ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-a8256bbf263179966e62334bb2ce29fac956558b5fd1e8eeeb552abf2729fefe","mtl-2.2.2","network-3.1.2.7-2b4cb4cf705bab7155e00b699103a19f122a11522725929835b8206424c153fa","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","template-haskell-2.14.0.0","time-1.8.0.2","transformers-0.5.6.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.5.0-cf90108c6ac3d94069f72313e840b7fbed69afe6bd4f4ee67b119bb6bc0cbd44","pkg-name":"hashable","pkg-version":"1.3.5.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","pkg-src-sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","depends":["base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.8-e-hsc2hs-5498fe4fcc15386c8297d5890697c2a102f241c7e53fe296fe2907c01d7ff256","pkg-name":"hsc2hs","pkg-version":"0.68.8","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"27a5e694efcc2133761de2a0c8079596b0fb62aef0be472afad7d60df6fa68d5","pkg-src-sha256":"78341efbc917a84a07f2143bee9203e2555072054d495717aa73d89d9df77a52","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","process-1.6.5.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/patrick/.cabal/store/ghc-8.6.5/hsc2hs-0.68.8-e-hsc2hs-5498fe4fcc15386c8297d5890697c2a102f241c7e53fe296fe2907c01d7ff256/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-a8256bbf263179966e62334bb2ce29fac956558b5fd1e8eeeb552abf2729fefe","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-5498fe4fcc15386c8297d5890697c2a102f241c7e53fe296fe2907c01d7ff256"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.12.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.7-2b4cb4cf705bab7155e00b699103a19f122a11522725929835b8206424c153fa","pkg-name":"network","pkg-version":"3.1.2.7","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","pkg-src-sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","components":{"lib":{"depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","directory-1.3.3.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-5498fe4fcc15386c8297d5890697c2a102f241c7e53fe296fe2907c01d7ff256"]}}},{"type":"configured","id":"network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.12.0.0","deepseq-1.4.4.0","parsec-3.1.13.0","template-haskell-2.14.0.0","th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","text-1.2.3.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.5.0","pkg-name":"process","pkg-version":"1.6.5.0","depends":["base-4.12.0.0","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1-d6e065809f4766c9fe07e4e79441d59dcc1314f981f4f64060cfc731e3f076d1","pkg-name":"random","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","pkg-src-sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.4-c1c994fcde15269949f0d516d3ef28604de875c3f344accd062c226556202a5a"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.2-cd3a978a9e3ea5c98e9c97a570ec78ef7a1ebc2123b1aa09a0a8bfc008813ba5","pkg-name":"regex-base","pkg-version":"0.94.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","pkg-src-sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-a02094608736314eec3f6ff2b04df07d939e04ba1753a570e07de7875ef5189c","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","regex-base-0.94.0.2-cd3a978a9e3ea5c98e9c97a570ec78ef7a1ebc2123b1aa09a0a8bfc008813ba5"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-43c8b63a21ecc378d443a8b2a00b0c9cb675240d5584576d4b14e6c7742e92dc","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.12.0.0","base16-bytestring-1.0.2.0-42e3145ac00f8d6082796b716cd7b1ec62b612e16b6813fcff3a6c6ea1913a0f","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.4-c1c994fcde15269949f0d516d3ef28604de875c3f344accd062c226556202a5a","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.12.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"configured","id":"tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.14.0.0","pkg-name":"template-haskell","pkg-version":"2.14.0.0","depends":["base-4.12.0.0","ghc-boot-th-8.6.5","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.12.0.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.12.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.12.0.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/bootstrap/linux-8.8.4.json b/bootstrap/linux-8.8.4.json
index fd95b7a6cf6563e07d747b89f6c150df2e314cf6..3eec1491dcb4719bad49f0f39a921aea8d10e306 100644
--- a/bootstrap/linux-8.8.4.json
+++ b/bootstrap/linux-8.8.4.json
@@ -1,49 +1,58 @@
 {
     "dependencies": [
         {
-            "source": "local",
-            "package": "Cabal",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-bundled-binary-generic"
             ],
+            "package": "Cabal-syntax",
+            "source": "local",
+            "version": "3.7.0.0"
+        },
+        {
             "cabal_sha256": null,
+            "revision": null,
             "src_sha256": null,
-            "revision": null
+            "flags": [],
+            "package": "Cabal",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "network",
-            "version": "3.1.2.2",
+            "cabal_sha256": "e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568",
+            "revision": 0,
+            "src_sha256": "7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85",
             "flags": [
                 "-devel"
             ],
-            "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06",
-            "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6",
-            "revision": 0
+            "package": "network",
+            "source": "hackage",
+            "version": "3.1.2.7"
         },
         {
-            "source": "hackage",
-            "package": "th-compat",
-            "version": "0.1.3",
-            "flags": [],
             "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993",
+            "revision": 0,
             "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6",
-            "revision": 0
+            "flags": [],
+            "package": "th-compat",
+            "source": "hackage",
+            "version": "0.1.3"
         },
         {
-            "source": "hackage",
-            "package": "network-uri",
-            "version": "2.6.4.1",
-            "flags": [],
             "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d",
+            "revision": 0,
             "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584",
-            "revision": 0
+            "flags": [],
+            "package": "network-uri",
+            "source": "hackage",
+            "version": "2.6.4.1"
         },
         {
-            "source": "hackage",
-            "package": "HTTP",
-            "version": "4000.3.16",
+            "cabal_sha256": "6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71",
+            "revision": 1,
+            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
             "flags": [
                 "-conduit10",
                 "-mtl1",
@@ -51,244 +60,245 @@
                 "-warn-as-error",
                 "-warp-tests"
             ],
-            "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093",
-            "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d",
-            "revision": 0
+            "package": "HTTP",
+            "source": "hackage",
+            "version": "4000.3.16"
         },
         {
-            "source": "hackage",
-            "package": "hashable",
-            "version": "1.3.3.0",
+            "cabal_sha256": "3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7",
+            "revision": 1,
+            "src_sha256": "baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886",
             "flags": [
                 "+integer-gmp",
                 "-random-initial-seed"
             ],
-            "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4",
-            "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc",
-            "revision": 0
+            "package": "hashable",
+            "source": "hackage",
+            "version": "1.3.5.0"
         },
         {
-            "source": "hackage",
-            "package": "async",
-            "version": "2.2.3",
+            "cabal_sha256": "b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0",
+            "revision": 1,
+            "src_sha256": "484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725",
             "flags": [
                 "-bench"
             ],
-            "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b",
-            "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c",
-            "revision": 0
+            "package": "async",
+            "source": "hackage",
+            "version": "2.2.4"
         },
         {
-            "source": "hackage",
-            "package": "base16-bytestring",
-            "version": "1.0.1.0",
+            "cabal_sha256": "64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a",
+            "revision": 0,
+            "src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
             "flags": [],
-            "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54",
-            "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa",
-            "revision": 0
+            "package": "base16-bytestring",
+            "source": "hackage",
+            "version": "1.0.2.0"
         },
         {
-            "source": "hackage",
-            "package": "base64-bytestring",
-            "version": "1.2.1.0",
-            "flags": [],
             "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8",
+            "revision": 0,
             "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
-            "revision": 0
+            "flags": [],
+            "package": "base64-bytestring",
+            "source": "hackage",
+            "version": "1.2.1.0"
         },
         {
-            "source": "hackage",
-            "package": "splitmix",
-            "version": "0.1.0.3",
+            "cabal_sha256": "714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1",
+            "revision": 0,
+            "src_sha256": "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa",
             "flags": [
                 "-optimised-mixer"
             ],
-            "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c",
-            "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35",
-            "revision": 0
+            "package": "splitmix",
+            "source": "hackage",
+            "version": "0.1.0.4"
         },
         {
-            "source": "hackage",
-            "package": "random",
-            "version": "1.2.0",
+            "cabal_sha256": "8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2",
+            "revision": 0,
+            "src_sha256": "265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457",
             "flags": [],
-            "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3",
-            "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de",
-            "revision": 6
+            "package": "random",
+            "source": "hackage",
+            "version": "1.2.1"
         },
         {
-            "source": "hackage",
-            "package": "edit-distance",
-            "version": "0.2.2.1",
-            "flags": [],
             "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
+            "revision": 1,
             "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
-            "revision": 1
+            "flags": [],
+            "package": "edit-distance",
+            "source": "hackage",
+            "version": "0.2.2.1"
         },
         {
-            "source": "local",
-            "package": "cabal-install-solver",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "-debug-conflict-sets",
                 "-debug-expensive-assertions",
                 "-debug-tracetree"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install-solver",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "hackage",
-            "package": "cryptohash-sha256",
-            "version": "0.11.102.0",
+            "cabal_sha256": "188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332",
+            "revision": 0,
+            "src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
             "flags": [
                 "-exe",
                 "+use-cbits"
             ],
-            "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c",
-            "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519",
-            "revision": 1
+            "package": "cryptohash-sha256",
+            "source": "hackage",
+            "version": "0.11.102.1"
         },
         {
-            "source": "hackage",
-            "package": "echo",
-            "version": "0.1.4",
+            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
+            "revision": 0,
+            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
             "flags": [
                 "-example"
             ],
-            "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
-            "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
-            "revision": 0
+            "package": "echo",
+            "source": "hackage",
+            "version": "0.1.4"
         },
         {
-            "source": "hackage",
-            "package": "exceptions",
-            "version": "0.10.4",
+            "cabal_sha256": "7ed09aed03683d5b4337088061106c2389d274b3472031a330ff1b220bad2b2d",
+            "revision": 3,
+            "src_sha256": "4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf",
             "flags": [
                 "+transformers-0-4"
             ],
-            "cabal_sha256": "d2546046d7ba4b460d3bc7fd269cd2c52d0b7fb3cfecc038715dd0881b78a484",
-            "src_sha256": "4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf",
-            "revision": 2
+            "package": "exceptions",
+            "source": "hackage",
+            "version": "0.10.4"
         },
         {
-            "source": "hackage",
-            "package": "ed25519",
-            "version": "0.0.5.0",
+            "cabal_sha256": "b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb",
+            "revision": 4,
+            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
             "flags": [
                 "+no-donna",
                 "+test-doctests",
                 "+test-hlint",
                 "+test-properties"
             ],
-            "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa",
-            "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
-            "revision": 3
+            "package": "ed25519",
+            "source": "hackage",
+            "version": "0.0.5.0"
         },
         {
-            "source": "hackage",
-            "package": "lukko",
-            "version": "0.1.1.3",
+            "cabal_sha256": "c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0",
+            "revision": 2,
+            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
             "flags": [
                 "+ofd-locking"
             ],
-            "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856",
-            "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f",
-            "revision": 1
+            "package": "lukko",
+            "source": "hackage",
+            "version": "0.1.1.3"
         },
         {
-            "source": "hackage",
-            "package": "tar",
-            "version": "0.5.1.1",
+            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
+            "revision": 4,
+            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
             "flags": [
                 "-old-bytestring",
                 "-old-time"
             ],
-            "cabal_sha256": "d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d",
-            "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de",
-            "revision": 4
+            "package": "tar",
+            "source": "hackage",
+            "version": "0.5.1.1"
         },
         {
-            "source": "hackage",
-            "package": "zlib",
-            "version": "0.6.2.3",
+            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
+            "revision": 1,
+            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
             "flags": [
                 "-bundled-c-zlib",
                 "-non-blocking-ffi",
                 "-pkg-config"
             ],
-            "cabal_sha256": "262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4",
-            "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88",
-            "revision": 1
+            "package": "zlib",
+            "source": "hackage",
+            "version": "0.6.2.3"
         },
         {
-            "source": "hackage",
-            "package": "hackage-security",
-            "version": "0.6.0.1",
+            "cabal_sha256": "c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137",
+            "revision": 0,
+            "src_sha256": "081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb",
             "flags": [
                 "+base48",
+                "+cabal-syntax",
                 "+lukko",
                 "-mtl21",
                 "-old-directory",
                 "+use-network-uri"
             ],
-            "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6",
-            "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17",
-            "revision": 8
+            "package": "hackage-security",
+            "source": "hackage",
+            "version": "0.6.2.0"
         },
         {
-            "source": "hackage",
-            "package": "regex-base",
-            "version": "0.94.0.1",
+            "cabal_sha256": "2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce",
+            "revision": 0,
+            "src_sha256": "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1",
             "flags": [],
-            "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7",
-            "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9",
-            "revision": 1
+            "package": "regex-base",
+            "source": "hackage",
+            "version": "0.94.0.2"
         },
         {
-            "source": "hackage",
-            "package": "regex-posix",
-            "version": "0.96.0.1",
+            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
+            "revision": 0,
+            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
             "flags": [
                 "-_regex-posix-clib"
             ],
-            "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca",
-            "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c",
-            "revision": 0
+            "package": "regex-posix",
+            "source": "hackage",
+            "version": "0.96.0.1"
         },
         {
-            "source": "hackage",
-            "package": "resolv",
-            "version": "0.1.2.0",
-            "flags": [],
-            "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529",
+            "cabal_sha256": "2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4",
+            "revision": 4,
             "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671",
-            "revision": 3
+            "flags": [],
+            "package": "resolv",
+            "source": "hackage",
+            "version": "0.1.2.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         },
         {
-            "source": "local",
-            "package": "cabal-install",
-            "version": "3.7.0.0",
+            "cabal_sha256": null,
+            "revision": null,
+            "src_sha256": null,
             "flags": [
                 "+lukko",
                 "+native-dns"
             ],
-            "cabal_sha256": null,
-            "src_sha256": null,
-            "revision": null
+            "package": "cabal-install",
+            "source": "local",
+            "version": "3.7.0.0"
         }
     ],
     "builtin": [
diff --git a/bootstrap/linux-8.8.4.plan.json b/bootstrap/linux-8.8.4.plan.json
index 13c6c3d738661efcc69414671b017ea01348de2d..bb5e6f78d5ee24711202378c1d3e4a602be5167e 100644
--- a/bootstrap/linux-8.8.4.plan.json
+++ b/bootstrap/linux-8.8.4.plan.json
@@ -1 +1 @@
-{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.8.4","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/Cabal"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/Cabal-3.7.0.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-f8ab0b17e78d25b4f7cc5cdcdeb5a191e9e74f9a8a046874d800acbe5788faec","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.13.0.0"]},{"type":"configured","id":"async-2.2.3-c2e6ae2e358b6f3876c922c0c82fed7f4976a1340e6a85f419bf9521f1e7e405","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.13.0.0","hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.13.0.0","pkg-name":"base","pkg-version":"4.13.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.7.0","pkg-name":"binary","pkg-version":"0.8.7.0","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1"]},{"type":"pre-existing","id":"bytestring-0.10.10.1","pkg-name":"bytestring","pkg-version":"0.10.10.1","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","HTTP-4000.3.16-f8ab0b17e78d25b4f7cc5cdcdeb5a191e9e74f9a8a046874d800acbe5788faec","array-0.5.4.0","async-2.2.3-c2e6ae2e358b6f3876c922c0c82fed7f4976a1340e6a85f419bf9521f1e7e405","base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","binary-0.8.7.0","bytestring-0.10.10.1","cabal-install-solver-3.7.0.0-inplace","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","edit-distance-0.2.2.1-50b8e1485c1ff01d540cdd1aa590c5d92e9b3c94c8538c733e03d22f5d7e351e","exceptions-0.10.4-cf5072550297b3b6c77388636f11854b0a9f7313fbfcc8c2052bad005e861ca1","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","mtl-2.2.2","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49","regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf","regex-posix-0.96.0.1-72585e261c0ecf752820fa53f859ec4ccf7745e5822441b073c0cb1ac2276a07","resolv-0.1.2.0-d6b4fb5161bd01de4f6fa4fb792d43776d825fb0ffe766aeed40cb88444683fc","stm-2.5.0.0","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","base-4.13.0.0","cabal-install-3.7.0.0-inplace","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/mikolaj/r/cabal/cabal-install-solver"},"dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","edit-distance-0.2.2.1-50b8e1485c1ff01d540cdd1aa590c5d92e9b3c94c8538c733e03d22f5d7e351e","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.13.0.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.13.0.0","process-1.6.9.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.13.0.0","bytestring-0.10.10.1","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-50b8e1485c1ff01d540cdd1aa590c5d92e9b3c94c8538c733e03d22f5d7e351e","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.13.0.0","containers-0.6.2.1","random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"exceptions-0.10.4-cf5072550297b3b6c77388636f11854b0a9f7313fbfcc8c2052bad005e861ca1","pkg-name":"exceptions","pkg-version":"0.10.4","flags":{"transformers-0-4":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2546046d7ba4b460d3bc7fd269cd2c52d0b7fb3cfecc038715dd0881b78a484","pkg-src-sha256":"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf","depends":["base-4.13.0.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.15.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.8.4","pkg-name":"ghc-boot-th","pkg-version":"8.8.4","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/mikolaj/r/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/hackage-security-0.6.0.1","depends":["Cabal-3.7.0.0-inplace","base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","bytestring-0.10.10.1","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","directory-1.3.6.0","ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","mtl-2.2.2","network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","template-haskell-2.15.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.13.0.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.9.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/mikolaj/.cabal/store/ghc-8.8.4/hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.13.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.13.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce"]}}},{"type":"configured","id":"network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.13.0.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.15.0.0","th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","text-1.2.4.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.9.0","pkg-name":"process","pkg-version":"1.6.9.0","depends":["base-4.13.0.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-01ccb9e40655e60a16f8df99e9c7ed102c60657b8bef9f5184f2cbf3d7c8f298"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","mtl-2.2.2","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-72585e261c0ecf752820fa53f859ec4ccf7745e5822441b073c0cb1ac2276a07","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-d6b4fb5161bd01de4f6fa4fb792d43776d825fb0ffe766aeed40cb88444683fc","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-01ccb9e40655e60a16f8df99e9c7ed102c60657b8bef9f5184f2cbf3d7c8f298","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.13.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"configured","id":"tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.15.0.0","pkg-name":"template-haskell","pkg-version":"2.15.0.0","depends":["base-4.13.0.0","ghc-boot-th-8.8.4","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.0","pkg-name":"text","pkg-version":"1.2.4.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","template-haskell-2.15.0.0"]},{"type":"configured","id":"th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.13.0.0","template-haskell-2.15.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.13.0.0","bytestring-0.10.10.1","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
+{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.8.4","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.7.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.7.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/Cabal-3.7.0.0","depends":["Cabal-syntax-3.7.0.0-inplace","array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-syntax-3.7.0.0-inplace","pkg-name":"Cabal-syntax","pkg-version":"3.7.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/Cabal-syntax"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/Cabal-syntax-3.7.0.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-d8646c96e064a8f0dca5b02543966ea7221857eedd26883557fd6b9c3198cc0f","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6042643c15a0b43e522a6693f1e322f05000d519543a84149cb80aeffee34f71","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","network-3.1.2.7-a880593a766793790076914a381207286b84ab9822e8f027367b354232bf15f9","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.13.0.0"]},{"type":"configured","id":"async-2.2.4-84b4e01804cc544022d77623bf724d128620ef2589e67dc831ee6c5c952205fa","pkg-name":"async","pkg-version":"2.2.4","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b83dec34a53520de84c6dd3dc7aae45d22409b46eb471c478b98108215a370f0","pkg-src-sha256":"484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725","depends":["base-4.13.0.0","hashable-1.3.5.0-437219745893b032bd849c46673f53a2174d54e94702c66834518abfe58e51f0","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.13.0.0","pkg-name":"base","pkg-version":"4.13.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.2.0-ba74bd1460af5acddf128d76ebce0931f349a76f1256b3e712ea6f350f366e1d","pkg-name":"base16-bytestring","pkg-version":"1.0.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"64abad7816ab8cabed8489e29f807b3a6f828e0b2cec0eae404323d69d36df9a","pkg-src-sha256":"1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.7.0","pkg-name":"binary","pkg-version":"0.8.7.0","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1"]},{"type":"pre-existing","id":"bytestring-0.10.10.1","pkg-name":"bytestring","pkg-version":"0.10.10.1","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.7.0.0-inplace","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","HTTP-4000.3.16-d8646c96e064a8f0dca5b02543966ea7221857eedd26883557fd6b9c3198cc0f","array-0.5.4.0","async-2.2.4-84b4e01804cc544022d77623bf724d128620ef2589e67dc831ee6c5c952205fa","base-4.13.0.0","base16-bytestring-1.0.2.0-ba74bd1460af5acddf128d76ebce0931f349a76f1256b3e712ea6f350f366e1d","binary-0.8.7.0","bytestring-0.10.10.1","cabal-install-solver-3.7.0.0-inplace","containers-0.6.2.1","cryptohash-sha256-0.11.102.1-a6d366b930419cb99b93796c81e633e80b91dd2c0b724c766a35f6658d032854","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","edit-distance-0.2.2.1-98f4f1de3ff8d7c7668eac2daf3c4dc1676e42514ee55351a36b6a2cace62130","exceptions-0.10.4-cf5072550297b3b6c77388636f11854b0a9f7313fbfcc8c2052bad005e861ca1","filepath-1.4.2.1","hackage-security-0.6.2.0-inplace","hashable-1.3.5.0-437219745893b032bd849c46673f53a2174d54e94702c66834518abfe58e51f0","lukko-0.1.1.3-b2dfc262c43ebba5b0e8f43536455289daa44cf3dd760bea69967f42832d1888","mtl-2.2.2","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","random-1.2.1-cf2f8eec7b4b59de600a90677bbf7d951416536a04b555a06bc10c970af67142","regex-base-0.94.0.2-da68030fec2e61e096a31e909449969a20368c726ef535346186b4e6821cbb51","regex-posix-0.96.0.1-97b4d48f945e30f66d5a035d025c241c68d8c8d36c71f6cfcb256e3663b1bbdb","resolv-0.1.2.0-8f5d9c44f97444a8554eed314cb0d84cd0f128b5e8d124cd1ca556455436e3f8","stm-2.5.0.0","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.7.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.7.0.0","flags":{"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0/x/cabal","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","base-4.13.0.0","cabal-install-3.7.0.0-inplace","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.7.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.7.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.7.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/patrick/projects/haskell/cabal/cabal-install-solver"},"dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-solver-3.7.0.0","depends":["Cabal-3.7.0.0-inplace","Cabal-syntax-3.7.0.0-inplace","array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","edit-distance-0.2.2.1-98f4f1de3ff8d7c7668eac2daf3c4dc1676e42514ee55351a36b6a2cace62130","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.1-a6d366b930419cb99b93796c81e633e80b91dd2c0b724c766a35f6658d032854","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.1","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"188d0b5a0491e8b686b32d9b144c9287760ba333d2509bf3f17e3d846fbc2332","pkg-src-sha256":"73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.13.0.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.13.0.0","process-1.6.9.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6d9e5729b3053671700ecd02b4b95a4f315fe1b983aeb2d64cd25c3e7d828cb","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.13.0.0","bytestring-0.10.10.1","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-98f4f1de3ff8d7c7668eac2daf3c4dc1676e42514ee55351a36b6a2cace62130","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.13.0.0","containers-0.6.2.1","random-1.2.1-cf2f8eec7b4b59de600a90677bbf7d951416536a04b555a06bc10c970af67142"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"exceptions-0.10.4-cf5072550297b3b6c77388636f11854b0a9f7313fbfcc8c2052bad005e861ca1","pkg-name":"exceptions","pkg-version":"0.10.4","flags":{"transformers-0-4":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7ed09aed03683d5b4337088061106c2389d274b3472031a330ff1b220bad2b2d","pkg-src-sha256":"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf","depends":["base-4.13.0.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.15.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.8.4","pkg-name":"ghc-boot-th","pkg-version":"8.8.4","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.2.0-inplace","pkg-name":"hackage-security","pkg-version":"0.6.2.0","flags":{"base48":true,"cabal-syntax":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c71b22bb336502341325767ae3d4fb9623d846e7e78511ea8c8cda383e839137","pkg-src-sha256":"081725bb1e5c0e399ad5b1327b4c42a63c3db36bbb70cca2dbb7c7ac2feb17cb","dist-dir":"/home/patrick/projects/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/hackage-security-0.6.2.0","depends":["Cabal-syntax-3.7.0.0-inplace","base-4.13.0.0","base16-bytestring-1.0.2.0-ba74bd1460af5acddf128d76ebce0931f349a76f1256b3e712ea6f350f366e1d","base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","bytestring-0.10.10.1","containers-0.6.2.1","cryptohash-sha256-0.11.102.1-a6d366b930419cb99b93796c81e633e80b91dd2c0b724c766a35f6658d032854","directory-1.3.6.0","ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-b2dfc262c43ebba5b0e8f43536455289daa44cf3dd760bea69967f42832d1888","mtl-2.2.2","network-3.1.2.7-a880593a766793790076914a381207286b84ab9822e8f027367b354232bf15f9","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","template-haskell-2.15.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.5.0-437219745893b032bd849c46673f53a2174d54e94702c66834518abfe58e51f0","pkg-name":"hashable","pkg-version":"1.3.5.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3a2beeafb220f9de706568a7e4a5b3c762cc4c9f25c94d7ef795b8c2d6a691d7","pkg-src-sha256":"baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886","depends":["base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.8-e-hsc2hs-c44e8e4a084994052217eacb70049ae8f28093c46ed5029cf7d9073f68dda78b","pkg-name":"hsc2hs","pkg-version":"0.68.8","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"27a5e694efcc2133761de2a0c8079596b0fb62aef0be472afad7d60df6fa68d5","pkg-src-sha256":"78341efbc917a84a07f2143bee9203e2555072054d495717aa73d89d9df77a52","depends":["base-4.13.0.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.9.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/patrick/.cabal/store/ghc-8.8.4/hsc2hs-0.68.8-e-hsc2hs-c44e8e4a084994052217eacb70049ae8f28093c46ed5029cf7d9073f68dda78b/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-b2dfc262c43ebba5b0e8f43536455289daa44cf3dd760bea69967f42832d1888","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c084c043a40632d3cafcac50fb5eeff84d91edb070a54baa94945f1c976f97c0","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.13.0.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-c44e8e4a084994052217eacb70049ae8f28093c46ed5029cf7d9073f68dda78b"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.13.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.7-a880593a766793790076914a381207286b84ab9822e8f027367b354232bf15f9","pkg-name":"network","pkg-version":"3.1.2.7","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e3d78b13db9512aeb106e44a334ab42b7aa48d26c097299084084cb8be5c5568","pkg-src-sha256":"7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85","components":{"lib":{"depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.8-e-hsc2hs-c44e8e4a084994052217eacb70049ae8f28093c46ed5029cf7d9073f68dda78b"]}}},{"type":"configured","id":"network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.13.0.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.15.0.0","th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","text-1.2.4.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.9.0","pkg-name":"process","pkg-version":"1.6.9.0","depends":["base-4.13.0.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.1-cf2f8eec7b4b59de600a90677bbf7d951416536a04b555a06bc10c970af67142","pkg-name":"random","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2","pkg-src-sha256":"265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457","depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.4-90e29f8f08260bcc0ef78bb0addb5906becbb5c9c7316e58f47b2328a5000517"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.2-da68030fec2e61e096a31e909449969a20368c726ef535346186b4e6821cbb51","pkg-name":"regex-base","pkg-version":"0.94.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2561adac8ce373910948066debe090a22b336b129ba5af18c0332524d16e72ce","pkg-src-sha256":"7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-97b4d48f945e30f66d5a035d025c241c68d8c8d36c71f6cfcb256e3663b1bbdb","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","regex-base-0.94.0.2-da68030fec2e61e096a31e909449969a20368c726ef535346186b4e6821cbb51"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-8f5d9c44f97444a8554eed314cb0d84cd0f128b5e8d124cd1ca556455436e3f8","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2088eb9368b920f80bbe4e3b03c3b8484090208f5c3b31645bd67a9ef7d26db4","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.13.0.0","base16-bytestring-1.0.2.0-ba74bd1460af5acddf128d76ebce0931f349a76f1256b3e712ea6f350f366e1d","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.4-90e29f8f08260bcc0ef78bb0addb5906becbb5c9c7316e58f47b2328a5000517","pkg-name":"splitmix","pkg-version":"0.1.0.4","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1","pkg-src-sha256":"6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa","depends":["base-4.13.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"configured","id":"tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d8699f46b485f105eea9c7158f3d432ca578e6bbe5d68751184e9899a41d430d","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.15.0.0","pkg-name":"template-haskell","pkg-version":"2.15.0.0","depends":["base-4.13.0.0","ghc-boot-th-8.8.4","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.0","pkg-name":"text","pkg-version":"1.2.4.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","template-haskell-2.15.0.0"]},{"type":"configured","id":"th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.13.0.0","template-haskell-2.15.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.13.0.0","bytestring-0.10.10.1","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"262a93dbf370be59f4ee57f3b1a51b338bc2c309797daa37c14f2262ae61dae4","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"}]}
\ No newline at end of file
diff --git a/cabal-benchmarks/cabal-benchmarks.cabal b/cabal-benchmarks/cabal-benchmarks.cabal
index f046aa7a747e7ae815767d7ea4675921645e246d..c32e1deda553353029303970cee75c2ab0919d5d 100644
--- a/cabal-benchmarks/cabal-benchmarks.cabal
+++ b/cabal-benchmarks/cabal-benchmarks.cabal
@@ -30,5 +30,5 @@ test-suite cabal-benchmarks
   build-depends:
       base
     , bytestring
-    , Cabal
+    , Cabal-syntax
     , criterion   >=1.5.6.2 && <1.6
diff --git a/cabal-install-solver/cabal-install-solver.cabal b/cabal-install-solver/cabal-install-solver.cabal
index bfbc10731ca9e9752c285ba2d8c8e339db2268fe..801d3906504f061060e7582399e7574ced04383f 100644
--- a/cabal-install-solver/cabal-install-solver.cabal
+++ b/cabal-install-solver/cabal-install-solver.cabal
@@ -107,6 +107,7 @@ library
     , binary        >=0.7.3    && <0.9
     , bytestring    >=0.10.6.0 && <0.12
     , Cabal         ^>=3.7
+    , Cabal-syntax  ^>=3.7
     , containers    >=0.5.6.2  && <0.7
     , edit-distance ^>= 0.2.2
     , filepath      ^>=1.4.0.0
@@ -138,6 +139,7 @@ Test-Suite unit-tests
    build-depends:
      , base        >= 4.10  && <4.15
      , Cabal
+     , Cabal-syntax
      , cabal-install-solver
      , tasty       >= 1.2.3 && <1.5
      , tasty-quickcheck
diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index 552e70f70f1e8d87eee608dd8e15dbb93f059a29..98c23fbd89c3dcf9d39ae04cedaa7a81aa0e9cf3 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -51,11 +51,14 @@ common base-dep
 common cabal-dep
     build-depends: Cabal ^>=3.7
 
+common cabal-syntax-dep
+    build-depends: Cabal-syntax ^>=3.7
+
 common cabal-install-solver-dep
     build-depends: cabal-install-solver ^>=3.7
 
 library
-    import: warnings, base-dep, cabal-dep, cabal-install-solver-dep
+    import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
     default-language: Haskell2010
 
     hs-source-dirs:   src
@@ -222,7 +225,7 @@ library
         time       >= 1.5.0.1  && < 1.11,
         transformers >= 0.4.2.0 && < 0.6,
         zlib       >= 0.5.3    && < 0.7,
-        hackage-security >= 0.6.0.1 && < 0.7,
+        hackage-security >= 0.6.2.0 && < 0.7,
         text       >= 1.2.3    && < 1.3,
         parsec     >= 3.1.13.0 && < 3.2,
         regex-base  >= 0.94.0.0 && <0.95,
@@ -245,7 +248,7 @@ library
 
 
 executable cabal
-    import: warnings, base-dep, cabal-dep
+    import: warnings, base-dep, cabal-dep, cabal-syntax-dep
     main-is: Main.hs
     hs-source-dirs: main
     default-language: Haskell2010
@@ -264,7 +267,7 @@ executable cabal
 -- Small, fast running tests.
 --
 Test-Suite unit-tests
-    import: warnings, base-dep, cabal-dep, cabal-install-solver-dep
+    import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
     default-language: Haskell2010
     ghc-options: -rtsopts -threaded
 
@@ -332,7 +335,7 @@ Test-Suite unit-tests
 -- Tests to run with a limited stack and heap size
 --
 Test-Suite memory-usage-tests
-  import: warnings, base-dep, cabal-dep, cabal-install-solver-dep
+  import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
   type: exitcode-stdio-1.0
   main-is: MemoryUsageTests.hs
   hs-source-dirs: tests
@@ -356,7 +359,7 @@ Test-Suite memory-usage-tests
 -- Integration tests that use the cabal-install code directly
 -- but still build whole projects
 test-suite integration-tests2
-  import: warnings, base-dep, cabal-dep, cabal-install-solver-dep
+  import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
   ghc-options: -rtsopts -threaded
   type: exitcode-stdio-1.0
   main-is: IntegrationTests2.hs
@@ -374,7 +377,7 @@ test-suite integration-tests2
         tagged
 
 test-suite long-tests
-  import: warnings, base-dep, cabal-dep, cabal-install-solver-dep
+  import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
   ghc-options: -rtsopts -threaded
   type: exitcode-stdio-1.0
   hs-source-dirs: tests
diff --git a/cabal-install/main/Main.hs b/cabal-install/main/Main.hs
index 2fccae2f4330f55186032d801ad886dbc32c4e26..7c812aece35887de877ae0be021a1a8c410f6dd5 100644
--- a/cabal-install/main/Main.hs
+++ b/cabal-install/main/Main.hs
@@ -119,7 +119,6 @@ import Distribution.Client.Version
 import Distribution.Package (packageId)
 import Distribution.PackageDescription
          ( BuildType(..), Executable(..), buildable )
-import Distribution.PackageDescription.Parsec ( readGenericPackageDescription )
 
 import Distribution.PackageDescription.PrettyPrint
          ( writeGenericPackageDescription )
@@ -138,6 +137,7 @@ import Distribution.Simple.Configure
          , getPersistBuildConfig, interpretPackageDbFlags
          , tryGetPersistBuildConfig )
 import qualified Distribution.Simple.LocalBuildInfo as LBI
+import Distribution.Simple.PackageDescription ( readGenericPackageDescription )
 import Distribution.Simple.Program (defaultProgramDb
                                    ,configureAllKnownPrograms
                                    ,simpleProgramInvocation
diff --git a/cabal-install/src/Distribution/Client/CmdOutdated.hs b/cabal-install/src/Distribution/Client/CmdOutdated.hs
index b2b817a00ced67b398dfabe08a5faedec3ea6d6b..6a13b313e6f1054cc2a47c0d6ba27084fab5abed 100644
--- a/cabal-install/src/Distribution/Client/CmdOutdated.hs
+++ b/cabal-install/src/Distribution/Client/CmdOutdated.hs
@@ -75,14 +75,14 @@ import Distribution.Verbosity
 import Distribution.Version
     ( Version, VersionInterval (..), VersionRange, LowerBound(..)
     , UpperBound(..) , asVersionIntervals, majorBoundVersion )
-import Distribution.PackageDescription.Parsec
-    ( readGenericPackageDescription )
 import Distribution.Types.PackageVersionConstraint
     ( PackageVersionConstraint (..), simplifyPackageVersionConstraint )
 import Distribution.Simple.Flag
     ( Flag(..), flagToMaybe, fromFlagOrDefault, toFlag )
 import Distribution.Simple.Command
     ( ShowOrParseArgs, OptionField, CommandUI(..), optArg, option, reqArg, liftOptionL )
+import Distribution.Simple.PackageDescription
+    ( readGenericPackageDescription )
 import qualified Distribution.Compat.CharParsing as P
 import Distribution.ReadE
     ( parsecToReadE )
diff --git a/cabal-install/src/Distribution/Client/Configure.hs b/cabal-install/src/Distribution/Client/Configure.hs
index 788e2b4815183399b60b5ba9c70737c834946cda..d0fd92e7db5a1fdc99065ed540ccf6b13fd6945e 100644
--- a/cabal-install/src/Distribution/Client/Configure.hs
+++ b/cabal-install/src/Distribution/Client/Configure.hs
@@ -59,6 +59,8 @@ import Distribution.Client.SavedFlags ( readCommandFlags, writeCommandFlags )
 import Distribution.Simple.Setup
          ( ConfigFlags(..)
          , fromFlag, toFlag, flagToMaybe, fromFlagOrDefault )
+import Distribution.Simple.PackageDescription
+         ( readGenericPackageDescription )
 import Distribution.Simple.PackageIndex as PackageIndex
          ( InstalledPackageIndex, lookupPackageName )
 import Distribution.Package
@@ -68,8 +70,6 @@ import Distribution.Types.GivenComponent
 import Distribution.Types.PackageVersionConstraint
          ( PackageVersionConstraint(..), thisPackageVersionConstraint )
 import qualified Distribution.PackageDescription as PkgDesc
-import Distribution.PackageDescription.Parsec
-         ( readGenericPackageDescription )
 import Distribution.PackageDescription.Configuration
          ( finalizePD )
 import Distribution.Version
diff --git a/cabal-install/src/Distribution/Client/GenBounds.hs b/cabal-install/src/Distribution/Client/GenBounds.hs
index 3636f4ad663cd765671d31d6ffa80be7b6e358dc..715425fc98f46ac3dca5cd0b226676aa8dc7c08a 100644
--- a/cabal-install/src/Distribution/Client/GenBounds.hs
+++ b/cabal-install/src/Distribution/Client/GenBounds.hs
@@ -30,13 +30,13 @@ import Distribution.PackageDescription
          ( enabledBuildDepends )
 import Distribution.PackageDescription.Configuration
          ( finalizePD )
-import Distribution.PackageDescription.Parsec
-         ( readGenericPackageDescription )
 import Distribution.Types.ComponentRequestedSpec
          ( defaultComponentRequestedSpec )
 import Distribution.Types.Dependency
 import Distribution.Simple.Compiler
          ( Compiler, PackageDBStack, compilerInfo )
+import Distribution.Simple.PackageDescription
+         ( readGenericPackageDescription )
 import Distribution.Simple.Program
          ( ProgramDb )
 import Distribution.Simple.Utils
diff --git a/cabal-install/src/Distribution/Client/IndexUtils.hs b/cabal-install/src/Distribution/Client/IndexUtils.hs
index 573f7b57089ddc48c7df54aa565566b049789515..02bcd081f6cd2382e54c058e1b7bf7064bcb3e57 100644
--- a/cabal-install/src/Distribution/Client/IndexUtils.hs
+++ b/cabal-install/src/Distribution/Client/IndexUtils.hs
@@ -86,6 +86,7 @@ import Distribution.Client.Setup
 import Distribution.PackageDescription.Parsec
          ( parseGenericPackageDescription, parseGenericPackageDescriptionMaybe )
 import qualified Distribution.PackageDescription.Parsec as PackageDesc.Parse
+import qualified Distribution.Simple.PackageDescription as PackageDesc.Parse
 
 import           Distribution.Solver.Types.PackageIndex (PackageIndex)
 import qualified Distribution.Solver.Types.PackageIndex as PackageIndex
diff --git a/cabal-install/src/Distribution/Client/ScriptUtils.hs b/cabal-install/src/Distribution/Client/ScriptUtils.hs
index f497508a8c7a1db50caae8f7cc2cd6f1a80997d2..6c253b1febe69a61a19a22cbb8cf882a863fe283 100644
--- a/cabal-install/src/Distribution/Client/ScriptUtils.hs
+++ b/cabal-install/src/Distribution/Client/ScriptUtils.hs
@@ -42,7 +42,7 @@ import Distribution.Client.Types
 import Distribution.FieldGrammar
     ( parseFieldGrammar, takeFields )
 import Distribution.Fields
-    ( ParseResult, parseFatalFailure, parseString, readFields )
+    ( ParseResult, parseFatalFailure, readFields )
 import Distribution.PackageDescription.FieldGrammar
     ( executableFieldGrammar )
 import Distribution.PackageDescription.PrettyPrint
@@ -51,6 +51,8 @@ import Distribution.Parsec
     ( Position(..) )
 import Distribution.Simple.Flag
     ( fromFlagOrDefault )
+import Distribution.Simple.PackageDescription
+    ( parseString )
 import Distribution.Simple.Setup
     ( Flag(..) )
 import Distribution.Simple.Utils
diff --git a/cabal-install/src/Distribution/Client/SetupWrapper.hs b/cabal-install/src/Distribution/Client/SetupWrapper.hs
index 22ccf021128022a550503df14620512cb42ef737..69e936d7691f47c6ba158a3390f327aef395116c 100644
--- a/cabal-install/src/Distribution/Client/SetupWrapper.hs
+++ b/cabal-install/src/Distribution/Client/SetupWrapper.hs
@@ -43,14 +43,14 @@ import Distribution.PackageDescription
          , PackageDescription(..), specVersion, buildType
          , BuildType(..) )
 import Distribution.Types.ModuleRenaming (defaultRenaming)
-import Distribution.PackageDescription.Parsec
-         ( readGenericPackageDescription )
 import Distribution.Simple.Configure
          ( configCompilerEx )
 import Distribution.Compiler
          ( buildCompilerId, CompilerFlavor(GHC, GHCJS) )
 import Distribution.Simple.Compiler
          ( Compiler(compilerId), compilerFlavor, PackageDB(..), PackageDBStack )
+import Distribution.Simple.PackageDescription
+         ( readGenericPackageDescription )
 import Distribution.Simple.PreProcess
          ( runSimplePreProcessor, ppUnlit )
 import Distribution.Simple.Build.Macros
diff --git a/cabal-install/src/Distribution/Client/SrcDist.hs b/cabal-install/src/Distribution/Client/SrcDist.hs
index 0357f5e3372e36d425ab43d9dadf50ada7c532d5..95814d9a84ac9adb4695f9df21d2212d0637b37c 100644
--- a/cabal-install/src/Distribution/Client/SrcDist.hs
+++ b/cabal-install/src/Distribution/Client/SrcDist.hs
@@ -16,7 +16,7 @@ import System.FilePath           (normalise, takeDirectory, (</>))
 import Distribution.Client.Utils                     (tryFindAddSourcePackageDesc)
 import Distribution.Package                          (Package (packageId))
 import Distribution.PackageDescription.Configuration (flattenPackageDescription)
-import Distribution.PackageDescription.Parsec        (readGenericPackageDescription)
+import Distribution.Simple.PackageDescription        (readGenericPackageDescription)
 import Distribution.Simple.PreProcess                (knownSuffixHandlers)
 import Distribution.Simple.SrcDist                   (listPackageSourcesWithDie)
 import Distribution.Simple.Utils                     (die')
diff --git a/cabal-install/src/Distribution/Client/Targets.hs b/cabal-install/src/Distribution/Client/Targets.hs
index b189bd8a753999c8c4d01a6789150a51395f6437..6bd3d8d55ba6a9473436bc505a211fbd0933e161 100644
--- a/cabal-install/src/Distribution/Client/Targets.hs
+++ b/cabal-install/src/Distribution/Client/Targets.hs
@@ -84,7 +84,9 @@ import Distribution.Simple.Utils
          ( die', lowercase )
 
 import Distribution.PackageDescription.Parsec
-         ( readGenericPackageDescription, parseGenericPackageDescriptionMaybe )
+         ( parseGenericPackageDescriptionMaybe )
+import Distribution.Simple.PackageDescription
+         ( readGenericPackageDescription )
 
 import qualified Data.Map as Map
 import qualified Data.ByteString.Lazy as BS
diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal
index b2a2e094459c86a9fb1120990e33d68521ab320a..4ae8223da4568f5245e8dc19fac7a43b7308f066 100644
--- a/cabal-testsuite/cabal-testsuite.cabal
+++ b/cabal-testsuite/cabal-testsuite.cabal
@@ -29,6 +29,7 @@ common shared
     , base >= 4.6 && <4.16
     -- this needs to match the in-tree lib:Cabal version
     , Cabal == 3.7.0.0
+    , Cabal-syntax == 3.7.0.0
 
   ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
 
diff --git a/cabal-testsuite/src/Test/Cabal/Prelude.hs b/cabal-testsuite/src/Test/Cabal/Prelude.hs
index a15473083a7ce56401e907e6f101f780762d62e3..2e728a07866be3d9b6960ef07f8b9c6b0033816d 100644
--- a/cabal-testsuite/src/Test/Cabal/Prelude.hs
+++ b/cabal-testsuite/src/Test/Cabal/Prelude.hs
@@ -24,6 +24,7 @@ import Test.Cabal.Plan
 
 import Distribution.Compat.Time (calibrateMtimeChangeDelay)
 import Distribution.Simple.Compiler (PackageDBStack, PackageDB(..))
+import Distribution.Simple.PackageDescription (readGenericPackageDescription)
 import Distribution.Simple.Program.Types
 import Distribution.Simple.Program.Db
 import Distribution.Simple.Program
@@ -39,7 +40,6 @@ import Distribution.Pretty (prettyShow)
 import Distribution.Types.UnqualComponentName
 import Distribution.Types.LocalBuildInfo
 import Distribution.PackageDescription
-import Distribution.PackageDescription.Parsec
 import Distribution.Verbosity (normal)
 
 import Distribution.Compat.Stack
diff --git a/cabal.project b/cabal.project
index 8fce413e7f424eff67030561cecafe14457b9a3b..d8291fc64f0d1d3523e3275475ac96b67442fb52 100644
--- a/cabal.project
+++ b/cabal.project
@@ -1,4 +1,4 @@
-packages: Cabal/ cabal-testsuite/
+packages: Cabal/ cabal-testsuite/ Cabal-syntax/
 packages: cabal-install/
 packages: cabal-install-solver/
 packages: solver-benchmarks/
diff --git a/cabal.project.buildinfo b/cabal.project.buildinfo
index c0cd46b1e370ce9f53aac5f2a54c2cfea968f8e1..941381117b6c0bec094c328f52b70cf24126b45a 100644
--- a/cabal.project.buildinfo
+++ b/cabal.project.buildinfo
@@ -1,3 +1,4 @@
+packages: Cabal-syntax/
 packages: Cabal/
 packages: Cabal-described
 packages: buildinfo-reference-generator/
diff --git a/cabal.project.coverage b/cabal.project.coverage
index cd6433517792b0bef56a89b1138a274a72d7ccc0..6e1ca6f27a8c84bb391b586a67994043313e0d44 100644
--- a/cabal.project.coverage
+++ b/cabal.project.coverage
@@ -1,4 +1,4 @@
-packages: Cabal/ cabal-testsuite/
+packages: Cabal-syntax/ Cabal/ cabal-testsuite/
 packages: cabal-install/
 packages: cabal-install-solver/
 packages: solver-benchmarks/
@@ -40,6 +40,11 @@ constraints: these
 -- multiproject settings in order to generate coverage for
 -- the `cabal-install` library
 --
+package Cabal-syntax
+  ghc-options: -fno-ignore-asserts
+  coverage: False
+  library-coverage: False
+
 package Cabal
   ghc-options: -fno-ignore-asserts
   coverage: False
diff --git a/cabal.project.libonly b/cabal.project.libonly
index 0a69952e852b4ea00975009401f43f3e7b0d9014..4f09ff2fa820bd81595829df7b75143608b5bc8f 100644
--- a/cabal.project.libonly
+++ b/cabal.project.libonly
@@ -1,4 +1,4 @@
-packages: Cabal/ cabal-testsuite/
+packages: Cabal-syntax/ Cabal/ cabal-testsuite/
 
 packages: Cabal-QuickCheck/
 packages: Cabal-tree-diff
@@ -21,6 +21,8 @@ program-options
   -- ghc-options: -fno-ignore-asserts
   --
   -- as a workaround we specify it for each package individually:
+package Cabal-syntax
+  ghc-options: -fno-ignore-asserts
 package Cabal
   ghc-options: -fno-ignore-asserts
 package cabal-testsuite
diff --git a/cabal.project.release b/cabal.project.release
index 393b4071892f44b99e0a40ecfe2b68c6be538db6..1f50c83e32447dc8b6f77632154f1b0106ec8515 100644
--- a/cabal.project.release
+++ b/cabal.project.release
@@ -1,3 +1,4 @@
+packages: Cabal-syntax/
 packages: Cabal/
 packages: cabal-install-solver/
 packages: cabal-install/
diff --git a/cabal.project.validate b/cabal.project.validate
index 0fcbe2cede71f7fe9784b6b6dde32949aab8463d..43db4f152c0a00b43b444bc648bd06966a19ae57 100644
--- a/cabal.project.validate
+++ b/cabal.project.validate
@@ -1,3 +1,4 @@
+packages: Cabal-syntax/
 packages: Cabal/
 packages: cabal-testsuite/
 packages: cabal-install/
@@ -20,6 +21,8 @@ constraints: these -assoc
 
 write-ghc-environment-files: never
 
+package Cabal-syntax
+  ghc-options: -Werror -fno-ignore-asserts
 package Cabal
   ghc-options: -Werror -fno-ignore-asserts
 package cabal-testsuite
diff --git a/cabal.project.validate.libonly b/cabal.project.validate.libonly
index 625f8f4e739352db2701461b4c4d7e2e9166f476..736914de74c509c460aa5242bf2a6732be4af40a 100644
--- a/cabal.project.validate.libonly
+++ b/cabal.project.validate.libonly
@@ -1,3 +1,4 @@
+packages: Cabal-syntax/
 packages: Cabal/
 packages: cabal-testsuite/
 packages: Cabal-QuickCheck/
@@ -15,6 +16,8 @@ write-ghc-environment-files: never
 constraints: rere -rere-cfg
 constraints: these -assoc
 
+package Cabal-syntax
+  ghc-options: -Werror -fno-ignore-asserts
 package Cabal
   ghc-options: -Werror -fno-ignore-asserts
 package cabal-testsuite
diff --git a/cabal.project.weeder b/cabal.project.weeder
index c167fa6edfe87cf2ae64ba2feabf9753587f7cb6..5fa8357bd6ae1175923beee75bca8b1a6c55af53 100644
--- a/cabal.project.weeder
+++ b/cabal.project.weeder
@@ -4,6 +4,7 @@
 --     cabal install -w ghc-8.8.3 weeder
 --
 
+packages: Cabal-syntax/
 packages: Cabal/
 packages: cabal-install/
 tests: False
diff --git a/changelog.d/cabal-syntax b/changelog.d/cabal-syntax
new file mode 100644
index 0000000000000000000000000000000000000000..ea4c9bedc89a453a02760c5fa1c818342c76c3f8
--- /dev/null
+++ b/changelog.d/cabal-syntax
@@ -0,0 +1,7 @@
+synopsis: Create Cabal-syntax for .cabal files
+prs: #7620
+issues: #7559
+
+description {
+- Extract `Cabal-syntax` from `Cabal` to provide the syntax and parsing code for `.cabal` files
+}
diff --git a/ghc-packages b/ghc-packages
index 8d827f6f9b2f443b07bf506c7bbf24340d5b472a..e9052489e04c2b2f348f287d9e60157f9dfe4237 100644
--- a/ghc-packages
+++ b/ghc-packages
@@ -1,2 +1,2 @@
 Cabal
-
+Cabal-syntax
diff --git a/solver-benchmarks/solver-benchmarks.cabal b/solver-benchmarks/solver-benchmarks.cabal
index 322476b8137c6e3cd22c9512c185c73342604857..fc4d04a0dbfd36a71f9a827ca893aa5c22433b73 100644
--- a/solver-benchmarks/solver-benchmarks.cabal
+++ b/solver-benchmarks/solver-benchmarks.cabal
@@ -31,7 +31,7 @@ library
     base,
     bytestring,
     containers,
-    Cabal >= 2.3,
+    Cabal-syntax >= 3.7,
     directory,
     filepath,
     optparse-applicative,
diff --git a/stack.yaml b/stack.yaml
index 9ce5557b8ad7c9d2a6a7efabed60102114878dc2..bf6d024898e0f096246501d2fb5235252028d546 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,5 +1,6 @@
 resolver: lts-11.6
 packages:
+- Cabal-syntax/
 - Cabal/
 - cabal-install/
 - cabal-testsuite/
diff --git a/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal b/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal
index 11602c9b5a7cf6e098086c8ca108955868f26cff..149b06660e2715dc26df5ab5d847b3d8312eb389 100644
--- a/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal
+++ b/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal
@@ -33,8 +33,9 @@ library
   other-modules:
   other-extensions:
   build-depends:
-      base       >=4.3  && <4.16
-    , Cabal      >=1.10 && <3.8
+      base          >=4.3  && <4.16
+    , Cabal         >=1.10 && <3.8
+    , Cabal-syntax  >=1.10 && <3.8
     , directory
     , filepath