diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+1.6.0
+-----
+* Support Cabal 2.2
+* Tested with GHC 8.4.2
+* Added cabal-bounds command 'format', for just reformating the cabal file
+
 1.5.0
 -----
 * Support Cabal 2.1
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -180,7 +180,4 @@
 Perhaps the currently most annoying thing is, that you have to live with the reformating of your
 `cabal` file done by the pretty printer of the `Cabal` library.
 
-To reformat your `cabal` file without changing any bounds you can call `cabal-bounds` with the name of
-a section that isn't present in the `cabal` file:
-
-    $> cabal-bounds drop --executable=blub
+To only reformat your `cabal` file you can call `cabal-bounds format`.
diff --git a/cabal-bounds.cabal b/cabal-bounds.cabal
--- a/cabal-bounds.cabal
+++ b/cabal-bounds.cabal
@@ -1,10 +1,12 @@
-name: cabal-bounds
-version: 1.5.0
 cabal-version: >=1.9.2
-build-type: Simple
+name: cabal-bounds
+version: 1.6.0
 license: BSD3
 license-file: LICENSE
 maintainer: daniel.trstenjak@gmail.com
+author: Daniel Trstenjak
+tested-with: ghc ==7.6.2 ghc ==7.6.3 ghc ==7.8.3 ghc ==7.10.1
+             ghc ==8.0.1 ghc ==8.2.1 ghc ==8.4.2
 synopsis: A command line program for managing the bounds/versions of the dependencies in a cabal file.
 description:
     A command line program for managing the bounds/versions of the dependencies in a cabal file.
@@ -45,9 +47,7 @@
     .
     > $ cabal-bounds drop --executable=blub
 category: Utils, Development
-author: Daniel Trstenjak
-tested-with: GHC ==7.6.2 GHC ==7.6.3 GHC ==7.8.3 GHC ==7.10.1
-             GHC ==8.0.1 GHC ==8.2.1
+build-type: Simple
 extra-source-files:
     README.md
     CHANGELOG
@@ -70,6 +70,7 @@
     tests/inputFiles/setup-config-build-env/libs/D/D.hs
     tests/goldenFiles/*.cabal
     tests/goldenFiles/*.hs
+    tests/goldenFiles/PlanFile/*.hs
     tests/outputFiles/SetupConfig/.gitignore
     tests/outputFiles/PlanFile/.gitignore
 
@@ -82,22 +83,6 @@
         CabalBounds.Args
         CabalBounds.Main
         CabalBounds.VersionComp
-    build-depends:
-        base >=4.6.0.0 && <5,
-        cmdargs >=0.10.5 && <0.11,
-        lens >=4.0.1 && <4.16,
-        strict >=0.3.2 && <0.4,
-        unordered-containers >=0.2.3.3 && <0.3,
-        transformers >=0.3.0.0 && <0.6,
-        either >=4.1.1 && <4.5,
-        cabal-lenses >=0.7.0 && <0.8,
-        Cabal >=2.1.0.0 && <2.2,
-        filepath >=1.3 && <1.5,
-        directory >=1.2 && <1.4,
-        aeson >=1.2.3.0 && <1.3,
-        lens-aeson >=1.0.2 && <1.1,
-        bytestring >=0.10.8.2 && <1.0,
-        text >=1.1.0.1 && <1.3
     cpp-options: -DCABAL
     hs-source-dirs: lib
     other-modules:
@@ -111,26 +96,42 @@
         CabalBounds.HaskellPlatform
         CabalBounds.Types
     ghc-options: -W
+    build-depends:
+        base >=4.6.0.0 && <5,
+        cmdargs >=0.10.5 && <0.11,
+        lens >=4.0.1 && <4.17,
+        strict >=0.3.2 && <0.4,
+        unordered-containers >=0.2.3.3 && <0.3,
+        transformers >=0.3.0.0 && <0.6,
+        either >=4.1.1 && <4.6,
+        cabal-lenses >=0.7.0 && <0.8,
+        Cabal >=2.2.0.0 && <2.3,
+        filepath >=1.3 && <1.5,
+        directory >=1.2 && <1.4,
+        aeson >=1.2.3.0 && <1.4,
+        lens-aeson >=1.0.2 && <1.1,
+        bytestring >=0.10.8.2 && <1.0,
+        text >=1.1.0.1 && <1.3
 
-executable  cabal-bounds
+executable cabal-bounds
     main-is: Main.hs
+    hs-source-dirs: exe
+    ghc-options: -W
     build-depends:
         base >=3 && <5,
         cabal-bounds -any
-    hs-source-dirs: exe
-    ghc-options: -W
 
-test-suite  cabal-bounds-tests
+test-suite cabal-bounds-tests
     type: exitcode-stdio-1.0
     main-is: Main.hs
+    hs-source-dirs: tests
+    ghc-options: -W
     build-depends:
         base >=3 && <5,
-        tasty >=0.9.0.1 && <0.12,
+        tasty >=0.9.0.1 && <1.2,
         tasty-golden >=2.2.0.2 && <2.4,
         process >=1.1.0.2 && <1.7,
         filepath >=1.3 && <1.5,
         directory >=1.2 && <1.4,
-        Glob >=0.7 && <0.9,
+        Glob >=0.7 && <0.10,
         cabal-bounds -any
-    hs-source-dirs: tests
-    ghc-options: -W
diff --git a/lib/CabalBounds/Args.hs b/lib/CabalBounds/Args.hs
--- a/lib/CabalBounds/Args.hs
+++ b/lib/CabalBounds/Args.hs
@@ -8,6 +8,7 @@
    , defaultUpdate
    , defaultDump
    , defaultLibs
+   , defaultFormat
    ) where
 
 import System.Console.CmdArgs hiding (ignore)
@@ -49,23 +50,26 @@
                    }
           | Dump { only       :: [String]
                  , ignore     :: [String]
-                 , output     :: Maybe String
+                 , output     :: Maybe FilePath
                  , cabalFiles :: [FilePath]
                  }
           | Libs { only            :: [String]
                  , ignore          :: [String]
-                 , output          :: Maybe String
+                 , output          :: Maybe FilePath
                  , fromFile        :: FilePath
                  , haskellPlatform :: String
                  , cabalFile       :: Maybe FilePath
                  , setupConfigFile :: Maybe FilePath
                  , planFile        :: Maybe FilePath
                  }
+          | Format { output    :: Maybe FilePath
+                   , cabalFile :: Maybe FilePath
+                   }
           deriving (Data, Typeable, Show, Eq)
 
 
 get :: IO Args
-get = cmdArgsRun . cmdArgsMode $ modes [dropArgs, updateArgs, dumpArgs, libsArgs]
+get = cmdArgsRun . cmdArgsMode $ modes [dropArgs, updateArgs, dumpArgs, libsArgs, formatArgs]
    &= program "cabal-bounds"
    &= summary summaryInfo
    &= help "A command line program for managing the bounds/versions of the dependencies in a cabal file."
@@ -133,6 +137,13 @@
    }
 
 
+defaultFormat :: Args
+defaultFormat = Format
+   { output    = def
+   , cabalFile = def
+   }
+
+
 dropArgs :: Args
 dropArgs = Drop
    { upper      = def &= explicit &= name "upper" &= name "U"
@@ -180,11 +191,19 @@
 
 libsArgs :: Args
 libsArgs = Libs
-   { output     = def &= explicit &= typ "FILE" &= name "output" &= name "o"
-                      &= help "Save the libraries cabal-bounds would use for its update run to file, if empty, then they're written to stdout."
+   { output          = def &= explicit &= typ "FILE" &= name "output" &= name "o"
+                           &= help "Save the libraries cabal-bounds would use for its update run to file, if empty, then they're written to stdout."
    , fromFile        = def &= typ "FILE" &= help "Use the library versions specified in the given file."
    , haskellPlatform = def &= explicit &= typ "VERSION" &= name "haskell-platform"
                            &= help "Use the library versions of the specified haskell platform version"
+   }
+
+
+formatArgs :: Args
+formatArgs = Format
+   { output    = def &= explicit &= typ "FILE" &= name "output" &= name "o"
+                     &= help "Save the formated cabal file to file, if empty, the cabal file is modified inplace."
+   , cabalFile = def &= CmdArgs.ignore
    }
 
 
diff --git a/lib/CabalBounds/Main.hs b/lib/CabalBounds/Main.hs
--- a/lib/CabalBounds/Main.hs
+++ b/lib/CabalBounds/Main.hs
@@ -5,7 +5,8 @@
    ) where
 
 import Distribution.PackageDescription (GenericPackageDescription)
-import Distribution.PackageDescription.Parse (parseGenericPackageDescription, ParseResult(..))
+import Distribution.PackageDescription.Parsec (parseGenericPackageDescription, runParseResult, ParseResult(..))
+import Distribution.Parsec.Common (PWarning)
 import qualified Distribution.PackageDescription.PrettyPrint as PP
 import Distribution.Simple.Configure (tryGetConfigStateFile)
 import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
@@ -37,9 +38,11 @@
 import Data.Maybe (fromMaybe, catMaybes)
 import qualified Data.Aeson as Aeson
 import Data.Aeson.Lens
-import qualified Data.ByteString.Lazy as BS
+import qualified Data.ByteString as BS
+import qualified Data.ByteString.Lazy as LBS
 import qualified Data.Text as T
 import Data.Text (Text)
+import qualified Data.List as L
 import Text.Read (readMaybe)
 
 
@@ -111,6 +114,14 @@
            Nothing   -> liftIO $ putStrLn (prettyPrint libs'))
 
 
+cabalBounds args@A.Format {} =
+   leftToJust <$> runEitherT (do
+      cabalFile <- findCabalFile $ A.cabalFile args
+      pkgDescrp <- packageDescription cabalFile
+      let outputFile = fromMaybe cabalFile (A.output args)
+      liftIO $ writeFile outputFile (showGenericPackageDescription pkgDescrp))
+
+
 sortLibraries :: Libraries -> Libraries
 sortLibraries = sortBy (compare `on` (map toLower . fst))
 
@@ -131,12 +142,19 @@
 
 packageDescription :: FilePath -> EitherT Error IO GenericPackageDescription
 packageDescription file = do
-   contents <- liftIO $ SIO.readFile file
-   case parseGenericPackageDescription contents of
-        ParseFailed error   -> left $ show error
-        ParseOk _ pkgDescrp -> right pkgDescrp
+   contents <- liftIO $ BS.readFile file
+   let (warnings, result) = runParseResult $ parseGenericPackageDescription contents
+   liftIO $ showWarnings warnings
+   case result of
+        Left (_, errors) -> left $ show errors
+        Right pkgDescrp  -> right pkgDescrp
 
+   where
+      showWarnings :: [PWarning] -> IO ()
+      showWarnings [] = return ()
+      showWarnings ws = putStrLn $ "cabal-bounds: " ++ (L.intercalate ", " $ map show ws)
 
+
 packageDescriptions :: [FilePath] -> EitherT Error IO [GenericPackageDescription]
 packageDescriptions []    = left "Missing cabal file"
 packageDescriptions files = mapM packageDescription files
@@ -207,7 +225,7 @@
 
 librariesFromPlanFile :: PlanFile -> EitherT Error IO LibraryMap
 librariesFromPlanFile planFile = do
-   contents <- liftIO $ BS.readFile planFile
+   contents <- liftIO $ LBS.readFile planFile
    let json = Aeson.decode contents :: Maybe Aeson.Value
    case json of
         Just json -> do
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,3 +1,4 @@
+{-# Language PatternGuards #-}
 
 module Main where
 
@@ -60,7 +61,7 @@
 
 
 tests :: T.TestTree
-tests = T.testGroup "Tests" [ T.testGroup "Sourceless Tests" [dropTests, dumpTests]
+tests = T.testGroup "Tests" [ T.testGroup "Sourceless Tests" [dropTests, dumpTests, formatTests]
                             , T.testGroup "SetupConfig Tests" [updateTests SetupConfig, libsTests SetupConfig]
                             , T.testGroup "PlanFile Tests" [updateTests PlanFile, libsTests PlanFile]
                             ]
@@ -129,6 +130,12 @@
    ]
 
 
+formatTests :: T.TestTree
+formatTests = T.testGroup "Format Tests"
+   [ test Nothing "Format" defaultFormat
+   ]
+
+
 libsTests :: LibsSource -> T.TestTree
 libsTests source = T.testGroup "Libs Tests"
    [ test (Just source) "Libs" defaultLibs
@@ -170,9 +177,20 @@
                                 , ignore          = ["base", "ghc-prim", "integer-gmp", "rts"] ++ ignore args
                                 }
 
+              Format {} -> args { cabalFile = Just inputFile
+                                , output    = Just outputFile
+                                }
+
       diff ref new    = ["diff", "-u", ref, new]
 
-      goldenFile      = "tests" </> "goldenFiles" </> testName <.> (if hasHsOutput then "hs" else "cabal")
+      goldenFile
+         | Just src <- source
+         , src == PlanFile
+         , testName == "Libs"
+         = "tests" </> "goldenFiles" </> (show src) </> "Libs.hs"
+
+         | otherwise
+         = "tests" </> "goldenFiles" </> testName <.> (if hasHsOutput then "hs" else "cabal")
 
       outputFile      =
          case source of
diff --git a/tests/goldenFiles/DropBothIgnoreA.cabal b/tests/goldenFiles/DropBothIgnoreA.cabal
--- a/tests/goldenFiles/DropBothIgnoreA.cabal
+++ b/tests/goldenFiles/DropBothIgnoreA.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfAll.cabal b/tests/goldenFiles/DropBothOfAll.cabal
--- a/tests/goldenFiles/DropBothOfAll.cabal
+++ b/tests/goldenFiles/DropBothOfAll.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfAllExes.cabal b/tests/goldenFiles/DropBothOfAllExes.cabal
--- a/tests/goldenFiles/DropBothOfAllExes.cabal
+++ b/tests/goldenFiles/DropBothOfAllExes.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfExe.cabal b/tests/goldenFiles/DropBothOfExe.cabal
--- a/tests/goldenFiles/DropBothOfExe.cabal
+++ b/tests/goldenFiles/DropBothOfExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfLib.cabal b/tests/goldenFiles/DropBothOfLib.cabal
--- a/tests/goldenFiles/DropBothOfLib.cabal
+++ b/tests/goldenFiles/DropBothOfLib.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfOtherExe.cabal b/tests/goldenFiles/DropBothOfOtherExe.cabal
--- a/tests/goldenFiles/DropBothOfOtherExe.cabal
+++ b/tests/goldenFiles/DropBothOfOtherExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOfTest.cabal b/tests/goldenFiles/DropBothOfTest.cabal
--- a/tests/goldenFiles/DropBothOfTest.cabal
+++ b/tests/goldenFiles/DropBothOfTest.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropBothOnlyBase.cabal b/tests/goldenFiles/DropBothOnlyBase.cabal
--- a/tests/goldenFiles/DropBothOnlyBase.cabal
+++ b/tests/goldenFiles/DropBothOnlyBase.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperIgnoreA.cabal b/tests/goldenFiles/DropUpperIgnoreA.cabal
--- a/tests/goldenFiles/DropUpperIgnoreA.cabal
+++ b/tests/goldenFiles/DropUpperIgnoreA.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfAll.cabal b/tests/goldenFiles/DropUpperOfAll.cabal
--- a/tests/goldenFiles/DropUpperOfAll.cabal
+++ b/tests/goldenFiles/DropUpperOfAll.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfAllExes.cabal b/tests/goldenFiles/DropUpperOfAllExes.cabal
--- a/tests/goldenFiles/DropUpperOfAllExes.cabal
+++ b/tests/goldenFiles/DropUpperOfAllExes.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfExe.cabal b/tests/goldenFiles/DropUpperOfExe.cabal
--- a/tests/goldenFiles/DropUpperOfExe.cabal
+++ b/tests/goldenFiles/DropUpperOfExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfLib.cabal b/tests/goldenFiles/DropUpperOfLib.cabal
--- a/tests/goldenFiles/DropUpperOfLib.cabal
+++ b/tests/goldenFiles/DropUpperOfLib.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfOtherExe.cabal b/tests/goldenFiles/DropUpperOfOtherExe.cabal
--- a/tests/goldenFiles/DropUpperOfOtherExe.cabal
+++ b/tests/goldenFiles/DropUpperOfOtherExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOfTest.cabal b/tests/goldenFiles/DropUpperOfTest.cabal
--- a/tests/goldenFiles/DropUpperOfTest.cabal
+++ b/tests/goldenFiles/DropUpperOfTest.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/DropUpperOnlyBase.cabal b/tests/goldenFiles/DropUpperOnlyBase.cabal
--- a/tests/goldenFiles/DropUpperOnlyBase.cabal
+++ b/tests/goldenFiles/DropUpperOnlyBase.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/Format.cabal b/tests/goldenFiles/Format.cabal
new file mode 100644
--- /dev/null
+++ b/tests/goldenFiles/Format.cabal
@@ -0,0 +1,95 @@
+cabal-version: >=1.9.2
+name: setup-config
+version: 0.1
+license: UnspecifiedLicense
+maintainer: daniel.trstenjak@gmail.com
+author: Daniel Trstenjak
+build-type: Simple
+
+library
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
+    hs-source-dirs: src
+    other-modules:
+        Paths_setup_config
+    build-depends:
+        base >=3,
+        A >=0.1 && <0.2,
+        B >=0.2 && <0.3,
+        C >=0.3 && <0.4,
+        D >=0.7
+
+executable cabal-bounds
+    main-is: ExeMain1.hs
+    cpp-options: -DCABAL
+    hs-source-dirs: src
+    other-modules:
+        Paths_setup_config
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
+    ghc-options: -W
+    build-depends:
+        base >=3,
+        A >=0.1 && <0.2,
+        B >=0.2 && <0.3,
+        C >=0.3 && <0.4,
+        D <0.9
+
+executable other-exe
+    main-is: ExeMain2.hs
+    cpp-options: -DCABAL
+    hs-source-dirs: src
+    other-modules:
+        Paths_setup_config
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
+    ghc-options: -W
+    build-depends:
+        base >=3,
+        A >=0.1 && <0.2,
+        B >=0.2 && <0.3,
+        C >=0.3 && <0.4,
+        D -any
+
+test-suite some-test
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
+    hs-source-dirs: src
+    other-modules:
+        Paths_setup_config
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
+    ghc-options: -W
+    build-depends:
+        base >=3,
+        A >=0.1 && <0.2,
+        B >=0.2 && <0.3,
+        C >=0.3 && <0.4,
+        D -any
+
+test-suite other-test
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
+    hs-source-dirs: src
+    other-modules:
+        Paths_setup_config
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
+    ghc-options: -W
+    build-depends:
+        base >=3,
+        A >=0.1 && <0.2,
+        B >=0.2 && <0.3,
+        C >=0.3 && <0.4,
+        D <1.0
diff --git a/tests/goldenFiles/PlanFile/Libs.hs b/tests/goldenFiles/PlanFile/Libs.hs
new file mode 100644
--- /dev/null
+++ b/tests/goldenFiles/PlanFile/Libs.hs
@@ -0,0 +1,8 @@
+[ ("A",[0,3])
+, ("AAA-BBB-CCC",[0,3,2])
+, ("AAA-BBB-DDD",[0,3,5])
+, ("B",[0,3,0,1])
+, ("C",[0,2,5])
+, ("D",[0,8,2])
+, ("G",[0,9,9])
+]
diff --git a/tests/goldenFiles/UpdateBothIgnoreA.cabal b/tests/goldenFiles/UpdateBothIgnoreA.cabal
--- a/tests/goldenFiles/UpdateBothIgnoreA.cabal
+++ b/tests/goldenFiles/UpdateBothIgnoreA.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfAll.cabal b/tests/goldenFiles/UpdateBothOfAll.cabal
--- a/tests/goldenFiles/UpdateBothOfAll.cabal
+++ b/tests/goldenFiles/UpdateBothOfAll.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfAllExes.cabal b/tests/goldenFiles/UpdateBothOfAllExes.cabal
--- a/tests/goldenFiles/UpdateBothOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateBothOfAllExes.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfExe.cabal b/tests/goldenFiles/UpdateBothOfExe.cabal
--- a/tests/goldenFiles/UpdateBothOfExe.cabal
+++ b/tests/goldenFiles/UpdateBothOfExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfLibrary.cabal b/tests/goldenFiles/UpdateBothOfLibrary.cabal
--- a/tests/goldenFiles/UpdateBothOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateBothOfLibrary.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfOtherExe.cabal b/tests/goldenFiles/UpdateBothOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateBothOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateBothOfOtherExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateBothOfTest.cabal b/tests/goldenFiles/UpdateBothOfTest.cabal
--- a/tests/goldenFiles/UpdateBothOfTest.cabal
+++ b/tests/goldenFiles/UpdateBothOfTest.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateByHaskellPlatform.cabal b/tests/goldenFiles/UpdateByHaskellPlatform.cabal
--- a/tests/goldenFiles/UpdateByHaskellPlatform.cabal
+++ b/tests/goldenFiles/UpdateByHaskellPlatform.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -42,7 +41,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfAll.cabal b/tests/goldenFiles/UpdateLowerOfAll.cabal
--- a/tests/goldenFiles/UpdateLowerOfAll.cabal
+++ b/tests/goldenFiles/UpdateLowerOfAll.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfAllExes.cabal b/tests/goldenFiles/UpdateLowerOfAllExes.cabal
--- a/tests/goldenFiles/UpdateLowerOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateLowerOfAllExes.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfExe.cabal b/tests/goldenFiles/UpdateLowerOfExe.cabal
--- a/tests/goldenFiles/UpdateLowerOfExe.cabal
+++ b/tests/goldenFiles/UpdateLowerOfExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfLibrary.cabal b/tests/goldenFiles/UpdateLowerOfLibrary.cabal
--- a/tests/goldenFiles/UpdateLowerOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateLowerOfLibrary.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfOtherExe.cabal b/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateLowerOfTest.cabal b/tests/goldenFiles/UpdateLowerOfTest.cabal
--- a/tests/goldenFiles/UpdateLowerOfTest.cabal
+++ b/tests/goldenFiles/UpdateLowerOfTest.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMajor1Lower.cabal b/tests/goldenFiles/UpdateMajor1Lower.cabal
--- a/tests/goldenFiles/UpdateMajor1Lower.cabal
+++ b/tests/goldenFiles/UpdateMajor1Lower.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal b/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
--- a/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
+++ b/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMajor1Upper.cabal b/tests/goldenFiles/UpdateMajor1Upper.cabal
--- a/tests/goldenFiles/UpdateMajor1Upper.cabal
+++ b/tests/goldenFiles/UpdateMajor1Upper.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMajor2Lower.cabal b/tests/goldenFiles/UpdateMajor2Lower.cabal
--- a/tests/goldenFiles/UpdateMajor2Lower.cabal
+++ b/tests/goldenFiles/UpdateMajor2Lower.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMajor2Upper.cabal b/tests/goldenFiles/UpdateMajor2Upper.cabal
--- a/tests/goldenFiles/UpdateMajor2Upper.cabal
+++ b/tests/goldenFiles/UpdateMajor2Upper.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMinorLower.cabal b/tests/goldenFiles/UpdateMinorLower.cabal
--- a/tests/goldenFiles/UpdateMinorLower.cabal
+++ b/tests/goldenFiles/UpdateMinorLower.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal b/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
--- a/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
+++ b/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateMinorUpper.cabal b/tests/goldenFiles/UpdateMinorUpper.cabal
--- a/tests/goldenFiles/UpdateMinorUpper.cabal
+++ b/tests/goldenFiles/UpdateMinorUpper.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateOnlyMissing.cabal b/tests/goldenFiles/UpdateOnlyMissing.cabal
--- a/tests/goldenFiles/UpdateOnlyMissing.cabal
+++ b/tests/goldenFiles/UpdateOnlyMissing.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -23,7 +23,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -41,7 +40,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperFromFile.cabal b/tests/goldenFiles/UpdateUpperFromFile.cabal
--- a/tests/goldenFiles/UpdateUpperFromFile.cabal
+++ b/tests/goldenFiles/UpdateUpperFromFile.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfAll.cabal b/tests/goldenFiles/UpdateUpperOfAll.cabal
--- a/tests/goldenFiles/UpdateUpperOfAll.cabal
+++ b/tests/goldenFiles/UpdateUpperOfAll.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfAllExes.cabal b/tests/goldenFiles/UpdateUpperOfAllExes.cabal
--- a/tests/goldenFiles/UpdateUpperOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateUpperOfAllExes.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfExe.cabal b/tests/goldenFiles/UpdateUpperOfExe.cabal
--- a/tests/goldenFiles/UpdateUpperOfExe.cabal
+++ b/tests/goldenFiles/UpdateUpperOfExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfLibrary.cabal b/tests/goldenFiles/UpdateUpperOfLibrary.cabal
--- a/tests/goldenFiles/UpdateUpperOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateUpperOfLibrary.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfOtherExe.cabal b/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/goldenFiles/UpdateUpperOfTest.cabal b/tests/goldenFiles/UpdateUpperOfTest.cabal
--- a/tests/goldenFiles/UpdateUpperOfTest.cabal
+++ b/tests/goldenFiles/UpdateUpperOfTest.cabal
@@ -1,9 +1,9 @@
+cabal-version: >=1.9.2
 name: setup-config
 version: 0.1
 license: UnspecifiedLicense
 maintainer: daniel.trstenjak@gmail.com
 author: Daniel Trstenjak
-cabal-version: >=1.9.2
 build-type: Simple
 
 library
@@ -24,7 +24,6 @@
 
 executable cabal-bounds
     main-is: ExeMain1.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -43,7 +42,6 @@
 
 executable other-exe
     main-is: ExeMain2.hs
-    scope: unknown
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
diff --git a/tests/inputFiles/plan.json b/tests/inputFiles/plan.json
--- a/tests/inputFiles/plan.json
+++ b/tests/inputFiles/plan.json
@@ -14,6 +14,16 @@
     },
     {
       "id": "E-1.8.2-inplace"
+    },
+    { "id": "F"
+    },
+    { "id": "G-0.9.9"
+    },
+    { "id": "AAA-BBB-CCC-0.3.2-FFFGGHHDSS"
+    },
+    { "id": "AAA-BBB-DDD-0.3.5"
+    },
+    { "id": "AAA-BBB-EEE"
     }
   ]
 }
