diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+1.0.0
+-----
+* Automatically find the cabal and setup-config file
+* Ignore the base library by default
+* Add the only/ignore options to the 'dump' command
+
 0.9.5
 -----
 * Support Haskell Platform 7.10.2
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -10,6 +10,17 @@
 * update them by the library versions specified by a file
 * dump the libraries/dependencies and their lower bound versions from the cabal file(s) into a file
 
+Example: Initialize Bounds
+==========================
+
+If you have started a new project, created a cabal file, added dependencies to it,
+build it, and now want to set the lower and upper bounds of the dependencies
+according to the currently used versions of the build, then you can just call:
+
+    $> cabal-bounds update
+
+This call will update the bounds of the dependencies of the cabal file in the working directory.
+
 Example: Raise the Upper Bounds
 ===============================
 
@@ -23,17 +34,19 @@
     # update the version infos of all libraries
     $> cabal update
 
-    # drops the upper bound of all dependencies in 'myproject.cabal', most likely you want to ignore 'base'
-    $> cabal-bounds drop --upper --ignore=base myproject.cabal
+    # drops the upper bound of all dependencies of the cabal file in the working directory
+    $> cabal-bounds drop --upper
 
-    # create a cabal sandbox for building of 'myproject'
+    # create a cabal sandbox for building your project, this ensures that you're really using
+    # the newest available versions of the dependencies, otherwise you would be constraint
+    # to the already installed versions
     $> cabal sandbox init
       
-    # build 'myproject'
+    # build your project
     $> cabal install
 
-    # update the upper bound of all dependencies in 'myproject.cabal' by the cabal build information
-    $> cabal-bounds update --upper --ignore=base myproject.cabal dist/dist-sandbox-*/setup-config 
+    # update the upper bound of all dependencies of the cabal file in the working directory
+    $> cabal-bounds update --upper
 
 Example: Update Bounds by Haskell Platform
 ==========================================
@@ -45,7 +58,7 @@
 
 To update the bounds to the haskell platform `2013.2.0.0`:
 
-    $> cabal-bounds update --haskell-platform=2013.2.0.0 myproject.cabal
+    $> cabal-bounds update --haskell-platform=2013.2.0.0
 
 There're two additional symbolic names for specifying a haskell platform release: `current` and `previous`.
 
@@ -53,42 +66,38 @@
 test if your project builds and works with these, and then raise the upper bounds to the newest available versions:
 
     # intialize the bounds to the previous haskell platform release
-    $> cabal-bounds update --ignore=base --haskell-platform=previous myproject.cabal
+    $> cabal-bounds update --haskell-platform=previous
 
     # build and test the project
 
     # initialize the lower bounds of libraries not present in the haskell platform
-    $> cabal-bounds update --lower --missing --ignore=base myproject.cabal dist/dist-sandbox-*/setup-config
+    $> cabal-bounds update --lower --missing
 
     # drop the upper bounds to test your project with the newest available library versions
-    $> cabal-bounds drop --upper --ignore=base myproject.cabal
+    $> cabal-bounds drop --upper
 
     # build and test the project
 
     # set the upper bounds to the ones used in the current build
-    $> cabal-bounds update --upper --ignore=base myproject.cabal dist/dist-sandbox-*/setup-config
-
-If you specify a haskell platform release and a setup config file at once, then the setup config library
-verions are only used for the libraries not present in the haskell platform release.
+    $> cabal-bounds update --upper
 
 Example: Update Bounds by File
 ==============================
 
 It's also possible to update the bounds by library versions specified in a file:
 
-    $> cabal-bounds update --fromfile=libs.hs myproject.cabal
+    $> cabal-bounds update --fromfile=libs.hs
 
 The `libs.hs` file has to be of the format:
 
     [ ("libA", [0,2,1]), ("libB", [2,1]), ("libC", [1]) ]
 
-If you specify a library file, a haskell platform release and a setup config file at once, then first the
-haskell platform libraries and versions are considered, then the library file and at the end the setup
-config file.
+If you specify a library file and a haskell platform release at once, then first the
+haskell platform libraries and versions are considered and then the library file.
 
 The library file can be created by the `dump` command:
 
-    $> cabal-bounds dump --output=libs.hs myproject.cabal
+    $> cabal-bounds dump --output=libs.hs
 
 The `dump` command will dump dependencies with their lower bound version. The command can take multiple cabal files.
 If the same dependencies is present in multiple files, then the lowest lower bound version is taken.
@@ -187,4 +196,4 @@
 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 myproject.cabal
+    $> cabal-bounds drop --executable=blub
diff --git a/cabal-bounds.cabal b/cabal-bounds.cabal
--- a/cabal-bounds.cabal
+++ b/cabal-bounds.cabal
@@ -1,5 +1,5 @@
 name: cabal-bounds
-version: 0.9.5
+version: 1.0.0
 cabal-version: >=1.9.2
 build-type: Simple
 license: BSD3
@@ -65,10 +65,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Main
-        CabalBounds.VersionComp
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -77,8 +73,14 @@
         unordered-containers >=0.2.3.3 && <0.3,
         transformers >=0.3.0.0 && <0.5,
         either >=4.1.1 && <4.5,
-        cabal-lenses >=0.4.4 && <0.5,
-        Cabal >=1.18.0 && <1.23
+        cabal-lenses >=0.4.6 && <0.5,
+        Cabal >=1.18.0 && <1.23,
+        filepath >= 1.3 && <1.5,
+        directory >= 1.2 && <1.3
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Main
+        CabalBounds.VersionComp
     cpp-options: -DCABAL
     hs-source-dirs: lib
     other-modules:
diff --git a/lib/CabalBounds/Args.hs b/lib/CabalBounds/Args.hs
--- a/lib/CabalBounds/Args.hs
+++ b/lib/CabalBounds/Args.hs
@@ -4,13 +4,13 @@
 module CabalBounds.Args
    ( Args(..)
    , get
-   , outputFile
    , defaultDrop
    , defaultUpdate
    , defaultDump
    ) where
 
 import System.Console.CmdArgs hiding (ignore)
+import qualified System.Console.CmdArgs as CmdArgs
 import CabalBounds.VersionComp (VersionComp(..))
 
 #ifdef CABAL
@@ -25,8 +25,8 @@
                  , benchmark  :: [String]
                  , only       :: [String]
                  , ignore     :: [String]
-                 , output     :: FilePath
-                 , cabalFile  :: FilePath
+                 , output     :: Maybe FilePath
+                 , cabalFile  :: Maybe FilePath
                  }
           | Update { lower           :: Bool
                    , upper           :: Bool
@@ -39,13 +39,15 @@
                    , only            :: [String]
                    , ignore          :: [String]
                    , missing         :: Bool
-                   , output          :: FilePath
+                   , output          :: Maybe FilePath
                    , fromFile        :: FilePath
                    , haskellPlatform :: String
-                   , cabalFile       :: FilePath
-                   , setupConfigFile :: [FilePath]
+                   , cabalFile       :: Maybe FilePath
+                   , setupConfigFile :: Maybe FilePath
                    }
-          | Dump { output     :: String
+          | Dump { only       :: [String]
+                 , ignore     :: [String]
+                 , output     :: Maybe String
                  , cabalFiles :: [FilePath]
                  }
           deriving (Data, Typeable, Show, Eq)
@@ -62,14 +64,6 @@
       summaryInfo = ""
 
 
-outputFile :: Args -> FilePath
-outputFile args
-   | not isDumpArgs && null (output args) = cabalFile args
-   | otherwise                            = output args
-   where
-      isDumpArgs = case args of Dump {} -> True; _ -> False
-
-
 defaultDrop :: Args
 defaultDrop = Drop
    { upper           = def
@@ -107,7 +101,9 @@
 
 defaultDump :: Args
 defaultDump = Dump
-   { output     = def
+   { only       = def
+   , ignore     = def
+   , output     = def
    , cabalFiles = def
    }
 
@@ -126,7 +122,7 @@
                       &= help "This dependency is ignored, not modified in any way."
    , output     = def &= explicit &= typ "FILE" &= name "output" &= name "o"
                       &= help "Save modified cabal file to file, if empty, the cabal file is modified inplace."
-   , cabalFile  = def &= argPos 0 &= typ "CABAL-FILE"
+   , cabalFile  = def &= CmdArgs.ignore
    }
 
 
@@ -144,7 +140,7 @@
    , fromFile        = def &= typ "FILE" &= help "Update bounds by the library versions spedified in the given file."
    , haskellPlatform = def &= explicit &= typ "VERSION" &= name "haskell-platform"
                            &= help "Update bounds by the library versions of the specified haskell platform version"
-   , setupConfigFile = def &= args &= typ "SETUP-CONFIG-FILE"
+   , setupConfigFile = def &= CmdArgs.ignore
    }
 
 
diff --git a/lib/CabalBounds/Dump.hs b/lib/CabalBounds/Dump.hs
--- a/lib/CabalBounds/Dump.hs
+++ b/lib/CabalBounds/Dump.hs
@@ -8,7 +8,7 @@
 import Data.List (foldl')
 import Data.Maybe (fromMaybe)
 import qualified CabalLenses as CL
-import CabalBounds.Dependencies (allDependency)
+import CabalBounds.Dependencies (Dependencies(..), allDependency, filterDependency)
 import Control.Lens
 
 type LibName    = String
@@ -16,11 +16,13 @@
 type Library    = (LibName, LibVersion)
 
 
-dump :: [GenericPackageDescription] -> [Library]
-dump pkgDescrps = HM.toList $ foldl' addLibsFromPkgDescrp HM.empty pkgDescrps
+dump :: Dependencies -> [GenericPackageDescription] -> [Library]
+dump deps pkgDescrps = HM.toList $ foldl' addLibsFromPkgDescrp HM.empty pkgDescrps
    where
       addLibsFromPkgDescrp libs pkgDescrp =
-         foldl' addLibFromDep libs (pkgDescrp ^.. allDependency)
+         foldl' addLibFromDep libs (pkgDescrp ^.. allDependency . filterDep)
+         where
+            filterDep = filterDependency deps
 
       addLibFromDep libs dep
          | lowerBound_ /= CL.noLowerBound
diff --git a/lib/CabalBounds/Main.hs b/lib/CabalBounds/Main.hs
--- a/lib/CabalBounds/Main.hs
+++ b/lib/CabalBounds/Main.hs
@@ -22,20 +22,23 @@
 import qualified CabalBounds.Update as U
 import qualified CabalBounds.Dump as D
 import qualified CabalBounds.HaskellPlatform as HP
+import qualified CabalLenses as CL
 import qualified System.IO.Strict as SIO
+import System.FilePath ((</>))
+import System.Directory (getCurrentDirectory)
 import Control.Monad.Trans.Either (EitherT, runEitherT, bimapEitherT, hoistEither, left, right)
 import Control.Monad.IO.Class
 import qualified Data.HashMap.Strict as HM
-import Data.List (foldl', sortBy)
+import Data.List (foldl', sortBy, find)
 import Data.Function (on)
 import Data.Char (toLower)
+import Data.Maybe (fromMaybe)
 
 #if MIN_VERSION_Cabal(1,22,0) == 0
 import Distribution.Simple.Configure (ConfigStateFileErrorType(..))
 #endif
 
 #if MIN_VERSION_Cabal(1,22,0) && MIN_VERSION_Cabal(1,22,1) == 0
-import qualified CabalLenses as CL
 import Control.Lens
 #endif
 
@@ -44,42 +47,78 @@
 #endif
 
 
-type Error = String
+type Error           = String
+type SetupConfigFile = FilePath
+type LibraryFile     = FilePath
+type CabalFile       = FilePath
 
+
 cabalBounds :: A.Args -> IO (Maybe Error)
-cabalBounds args@A.Drop {} =
+cabalBounds args'@A.Drop {} =
    leftToJust <$> runEitherT (do
-      pkgDescrp <- packageDescription $ A.cabalFile args
+      cabalFile <- findCabalFile $ A.cabalFile args
+      pkgDescrp <- packageDescription cabalFile
       let pkgDescrp' = D.drop (B.boundOfDrop args) (S.sections args pkgDescrp) (DP.dependencies args) pkgDescrp
-      liftIO $ writeFile (A.outputFile args) (showGenericPackageDescription pkgDescrp'))
+      let outputFile = fromMaybe cabalFile (A.output args)
+      liftIO $ writeFile outputFile (showGenericPackageDescription pkgDescrp'))
+   where
+      args = ignoreBaseLibrary args'
 
-cabalBounds args@A.Update {} =
+cabalBounds args'@A.Update {} =
    leftToJust <$> runEitherT (do
-      pkgDescrp <- packageDescription $ A.cabalFile args
-      libs      <- libraries (A.haskellPlatform args) (A.fromFile args) setupConfigFile
+      cabalFile <- findCabalFile $ A.cabalFile args
+      pkgDescrp <- packageDescription cabalFile
+      libs      <- libraries (A.haskellPlatform args) (A.fromFile args) (A.setupConfigFile args, cabalFile)
       let pkgDescrp' = U.update (B.boundOfUpdate args) (S.sections args pkgDescrp) (DP.dependencies args) libs pkgDescrp
-      liftIO $ writeFile (A.outputFile args) (showGenericPackageDescription pkgDescrp'))
+      let outputFile = fromMaybe cabalFile (A.output args)
+      liftIO $ writeFile outputFile (showGenericPackageDescription pkgDescrp'))
    where
-      setupConfigFile
-         | (file:_) <- A.setupConfigFile args
-         = file
-
-         | otherwise
-         = ""
+      args = ignoreBaseLibrary args'
 
-cabalBounds args@A.Dump {} =
+cabalBounds args'@A.Dump {} =
    leftToJust <$> runEitherT (do
-      pkgDescrps <- packageDescriptions $ A.cabalFiles args
-      let libs = sortBy (compare `on` (map toLower . fst)) $ D.dump pkgDescrps
-      if (not . null . A.outputFile $ args)
-         then liftIO $ writeFile (A.outputFile args) (prettyPrint libs)
-         else liftIO $ putStrLn (prettyPrint libs))
+      cabalFiles <- if null $ A.cabalFiles args
+                       then (: []) <$> findCabalFile Nothing
+                       else right $ A.cabalFiles args
+
+      pkgDescrps <- packageDescriptions cabalFiles
+      let libs = sortBy (compare `on` (map toLower . fst)) $ D.dump (DP.dependencies args) pkgDescrps
+      case A.output args of
+           Just file -> liftIO $ writeFile file (prettyPrint libs)
+           Nothing   -> liftIO $ putStrLn (prettyPrint libs))
    where
       prettyPrint []     = "[]"
       prettyPrint (l:ls) =
          "[ " ++ show l ++ "\n" ++ foldl' (\str l -> str ++ ", " ++ show l ++ "\n") "" ls ++ "]";
 
+      args = ignoreBaseLibrary args'
 
+
+findCabalFile :: Maybe CabalFile -> EitherT Error IO CabalFile
+findCabalFile Nothing = do
+   curDir <- liftIO getCurrentDirectory
+   CL.findCabalFile curDir
+
+findCabalFile (Just file) = right file
+
+
+findSetupConfigFile :: Maybe SetupConfigFile -> CabalFile -> EitherT Error IO SetupConfigFile
+findSetupConfigFile Nothing cabalFile = do
+   distDir <- liftIO $ CL.findDistDir cabalFile
+   case distDir of
+        Just dir -> right $ dir </> "setup-config"
+        Nothing  -> left "Couldn't find 'dist' directory! Have you already build the project?"
+
+findSetupConfigFile (Just confFile) _ = right confFile
+
+
+ignoreBaseLibrary :: A.Args -> A.Args
+ignoreBaseLibrary args =
+   case find (== "base") (A.ignore args) of
+	Just _  -> args
+	Nothing -> args { A.ignore = "base" : A.ignore args }
+
+
 packageDescription :: FilePath -> EitherT Error IO GenericPackageDescription
 packageDescription file = do
    contents <- liftIO $ SIO.readFile file
@@ -93,16 +132,15 @@
 packageDescriptions files = mapM packageDescription files
 
 
-type SetupConfigFile = String
-type LibraryFile     = String
+libraries :: HP.HPVersion -> LibraryFile -> (Maybe SetupConfigFile, CabalFile) -> EitherT Error IO U.Libraries
+libraries "" "" (maybeConfFile, cabalFile) = do
+   confFile <- findSetupConfigFile maybeConfFile cabalFile
+   installedLibraries confFile
 
-libraries :: HP.HPVersion -> LibraryFile -> SetupConfigFile -> EitherT Error IO U.Libraries
-libraries "" "" ""                   = left "Missing library file, haskell platform version and setup config file"
-libraries hpVersion libFile confFile = do
+libraries hpVersion libFile _ = do
    hpLibs       <- haskellPlatformLibraries hpVersion
    libsFromFile <- librariesFromFile libFile
-   instLibs     <- installedLibraries confFile
-   right $ HM.union (HM.union hpLibs libsFromFile) instLibs
+   right $ HM.union hpLibs libsFromFile
 
 
 librariesFromFile :: LibraryFile -> EitherT Error IO U.Libraries
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -104,7 +104,6 @@
    , test "UpdateMajor1LowerAndUpper" $ defaultUpdate { lowerComp = Just Major1, upperComp = Just Major1 }
    , test "UpdateOnlyMissing" $ defaultUpdate { missing = True }
    , testWithoutSetupConfig "UpdateByHaskellPlatform" $ defaultUpdate { haskellPlatform = "2013.2.0.0" }
-   , test "UpdateByHaskellPlatformAndSetupConfig" $ defaultUpdate { haskellPlatform = "2013.2.0.0" }
    , testWithoutSetupConfig "FromFile" $ defaultUpdate { upper = True, fromFile = "tests" </> "inputFiles" </> "FromFile.hs" }
    ]
 
@@ -135,16 +134,16 @@
 
       argsWithFiles =
          case args of
-              Drop {}   -> args { cabalFile = inputFile
-                                , output    = outputFile
+              Drop {}   -> args { cabalFile = Just inputFile
+                                , output    = Just outputFile
                                 }
-              Update {} -> args { cabalFile       = inputFile
-                                , output          = outputFile
-                                , setupConfigFile = [setupConfigFile | withSetupConfig]
+              Update {} -> args { cabalFile       = Just inputFile
+                                , output          = Just outputFile
+                                , setupConfigFile = if withSetupConfig then Just setupConfigFile else Nothing
                                 }
 
               Dump {}   -> args { cabalFiles = [inputFile]
-                                , output     = outputFile
+                                , output     = Just outputFile
                                 }
 
       diff ref new    = ["diff", "-u", ref, new]
diff --git a/tests/goldenFiles/DropBothIgnoreBase.cabal b/tests/goldenFiles/DropBothIgnoreBase.cabal
--- a/tests/goldenFiles/DropBothIgnoreBase.cabal
+++ b/tests/goldenFiles/DropBothIgnoreBase.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs -any,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs -any,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs -any,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs -any,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs -any,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfAll.cabal b/tests/goldenFiles/DropBothOfAll.cabal
--- a/tests/goldenFiles/DropBothOfAll.cabal
+++ b/tests/goldenFiles/DropBothOfAll.cabal
@@ -15,31 +15,31 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,15 +70,15 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,15 +88,15 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfAllExes.cabal b/tests/goldenFiles/DropBothOfAllExes.cabal
--- a/tests/goldenFiles/DropBothOfAllExes.cabal
+++ b/tests/goldenFiles/DropBothOfAllExes.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,19 +22,24 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfExe.cabal b/tests/goldenFiles/DropBothOfExe.cabal
--- a/tests/goldenFiles/DropBothOfExe.cabal
+++ b/tests/goldenFiles/DropBothOfExe.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,19 +22,24 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfLib.cabal b/tests/goldenFiles/DropBothOfLib.cabal
--- a/tests/goldenFiles/DropBothOfLib.cabal
+++ b/tests/goldenFiles/DropBothOfLib.cabal
@@ -15,24 +15,23 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfOtherExe.cabal b/tests/goldenFiles/DropBothOfOtherExe.cabal
--- a/tests/goldenFiles/DropBothOfOtherExe.cabal
+++ b/tests/goldenFiles/DropBothOfOtherExe.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOfTest.cabal b/tests/goldenFiles/DropBothOfTest.cabal
--- a/tests/goldenFiles/DropBothOfTest.cabal
+++ b/tests/goldenFiles/DropBothOfTest.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,15 +70,15 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
-        base -any,
+        base >=3 && <5,
         cmdargs -any,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropBothOnlyBase.cabal b/tests/goldenFiles/DropBothOnlyBase.cabal
--- a/tests/goldenFiles/DropBothOnlyBase.cabal
+++ b/tests/goldenFiles/DropBothOnlyBase.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base -any,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base -any,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base -any,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base -any,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base -any,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperIgnoreBase.cabal b/tests/goldenFiles/DropUpperIgnoreBase.cabal
--- a/tests/goldenFiles/DropUpperIgnoreBase.cabal
+++ b/tests/goldenFiles/DropUpperIgnoreBase.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfAll.cabal b/tests/goldenFiles/DropUpperOfAll.cabal
--- a/tests/goldenFiles/DropUpperOfAll.cabal
+++ b/tests/goldenFiles/DropUpperOfAll.cabal
@@ -15,31 +15,31 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,15 +70,15 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,15 +88,15 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfAllExes.cabal b/tests/goldenFiles/DropUpperOfAllExes.cabal
--- a/tests/goldenFiles/DropUpperOfAllExes.cabal
+++ b/tests/goldenFiles/DropUpperOfAllExes.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,19 +22,24 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfExe.cabal b/tests/goldenFiles/DropUpperOfExe.cabal
--- a/tests/goldenFiles/DropUpperOfExe.cabal
+++ b/tests/goldenFiles/DropUpperOfExe.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,19 +22,24 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfLib.cabal b/tests/goldenFiles/DropUpperOfLib.cabal
--- a/tests/goldenFiles/DropUpperOfLib.cabal
+++ b/tests/goldenFiles/DropUpperOfLib.cabal
@@ -15,24 +15,23 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfOtherExe.cabal b/tests/goldenFiles/DropUpperOfOtherExe.cabal
--- a/tests/goldenFiles/DropUpperOfOtherExe.cabal
+++ b/tests/goldenFiles/DropUpperOfOtherExe.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOfTest.cabal b/tests/goldenFiles/DropUpperOfTest.cabal
--- a/tests/goldenFiles/DropUpperOfTest.cabal
+++ b/tests/goldenFiles/DropUpperOfTest.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,15 +70,15 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
-        base >=3,
+        base >=3 && <5,
         cmdargs >=0.10.5,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/DropUpperOnlyBase.cabal b/tests/goldenFiles/DropUpperOnlyBase.cabal
--- a/tests/goldenFiles/DropUpperOnlyBase.cabal
+++ b/tests/goldenFiles/DropUpperOnlyBase.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3,
         cmdargs >=0.10.5 && <0.11,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3,
         cmdargs >=0.10.5 && <0.11,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3,
         cmdargs >=0.10.5 && <0.11,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3,
         cmdargs >=0.10.5 && <0.11,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3,
         cmdargs >=0.10.5 && <0.11,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/Dump.hs b/tests/goldenFiles/Dump.hs
--- a/tests/goldenFiles/Dump.hs
+++ b/tests/goldenFiles/Dump.hs
@@ -1,3 +1,2 @@
-[ ("base",[3])
-, ("cmdargs",[0,10,5])
+[ ("cmdargs",[0,10,5])
 ]
diff --git a/tests/goldenFiles/FromFile.cabal b/tests/goldenFiles/FromFile.cabal
--- a/tests/goldenFiles/FromFile.cabal
+++ b/tests/goldenFiles/FromFile.cabal
@@ -15,11 +15,6 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <2.3,
@@ -27,12 +22,16 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <2.3,
@@ -40,6 +39,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,7 +51,6 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <2.3,
@@ -59,6 +58,7 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,8 +70,6 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <2.3,
@@ -79,6 +77,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,8 +88,6 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
         base >=3 && <5,
         cmdargs >=0.10.5 && <2.3,
@@ -97,6 +95,8 @@
         pretty-show -any,
         strict -any,
         Cabal -any
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/UpdateBothOfAll.cabal b/tests/goldenFiles/UpdateBothOfAll.cabal
--- a/tests/goldenFiles/UpdateBothOfAll.cabal
+++ b/tests/goldenFiles/UpdateBothOfAll.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateBothOfAllExes.cabal b/tests/goldenFiles/UpdateBothOfAllExes.cabal
--- a/tests/goldenFiles/UpdateBothOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateBothOfAllExes.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateBothOfExe.cabal b/tests/goldenFiles/UpdateBothOfExe.cabal
--- a/tests/goldenFiles/UpdateBothOfExe.cabal
+++ b/tests/goldenFiles/UpdateBothOfExe.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateBothOfLibrary.cabal b/tests/goldenFiles/UpdateBothOfLibrary.cabal
--- a/tests/goldenFiles/UpdateBothOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateBothOfLibrary.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateBothOfOtherExe.cabal b/tests/goldenFiles/UpdateBothOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateBothOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateBothOfOtherExe.cabal
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateBothOfTest.cabal b/tests/goldenFiles/UpdateBothOfTest.cabal
--- a/tests/goldenFiles/UpdateBothOfTest.cabal
+++ b/tests/goldenFiles/UpdateBothOfTest.cabal
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7.0.1 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens ==4.7.*,
         pretty-show >=1.6.7 && <1.7,
diff --git a/tests/goldenFiles/UpdateByHaskellPlatform.cabal b/tests/goldenFiles/UpdateByHaskellPlatform.cabal
--- a/tests/goldenFiles/UpdateByHaskellPlatform.cabal
+++ b/tests/goldenFiles/UpdateByHaskellPlatform.cabal
@@ -15,31 +15,31 @@
     location: https://github.com/dan-t/cabal-bounds
 
 library
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
     build-depends:
-        base >=4.6.0.1 && <4.7,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal >=1.16.0 && <1.17
+    exposed-modules:
+        CabalBounds.Args
+        CabalBounds.Command
+        CabalBounds.Execute
+        CabalBounds.Lenses
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
 
 executable cabal-bounds
-    main-is: ExeMain1.hs
     build-depends:
-        base >=4.6.0.1 && <4.7,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal >=1.16.0 && <1.17
+    main-is: ExeMain1.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -51,14 +51,14 @@
     ghc-options: -W
 
 executable other-exe
-    main-is: ExeMain2.hs
     build-depends:
-        base >=4.6.0.1 && <4.7,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal >=1.16.0 && <1.17
+    main-is: ExeMain2.hs
     cpp-options: -DCABAL
     hs-source-dirs: src
     other-modules:
@@ -70,15 +70,15 @@
     ghc-options: -W
 
 test-suite some-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
     build-depends:
-        base >=4.6.0.1 && <4.7,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal >=1.16.0 && <1.17
+    type: exitcode-stdio-1.0
+    main-is: TestMain1.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
@@ -88,15 +88,15 @@
         CabalBounds.Lenses
     ghc-options: -W
 test-suite other-test
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
     build-depends:
-        base >=4.6.0.1 && <4.7,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens -any,
         pretty-show -any,
         strict -any,
         Cabal >=1.16.0 && <1.17
+    type: exitcode-stdio-1.0
+    main-is: TestMain2.hs
     hs-source-dirs: src
     other-modules:
         Paths_cabal_bounds
diff --git a/tests/goldenFiles/UpdateByHaskellPlatformAndSetupConfig.cabal b/tests/goldenFiles/UpdateByHaskellPlatformAndSetupConfig.cabal
deleted file mode 100644
--- a/tests/goldenFiles/UpdateByHaskellPlatformAndSetupConfig.cabal
+++ /dev/null
@@ -1,107 +0,0 @@
-name: cabal-bounds
-version: 0.1
-cabal-version: >=1.9.2
-build-type: Simple
-license: UnspecifiedLicense
-maintainer: daniel.trstenjak@gmail.com
-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.
-category: Utils
-author: Daniel Trstenjak
-
-source-repository head
-    type: git
-    location: https://github.com/dan-t/cabal-bounds
-
-library
-    build-depends:
-        base >=4.6.0.1 && <4.7,
-        cmdargs >=0.10.7 && <0.11,
-        lens ==4.7.*,
-        pretty-show >=1.6.7 && <1.7,
-        strict >=0.3.2 && <0.4,
-        Cabal >=1.16.0 && <1.17
-    exposed-modules:
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
-    hs-source-dirs: src
-    other-modules:
-        Paths_cabal_bounds
-
-executable cabal-bounds
-    build-depends:
-        base >=4.6.0.1 && <4.7,
-        cmdargs >=0.10.7 && <0.11,
-        lens ==4.7.*,
-        pretty-show >=1.6.7 && <1.7,
-        strict >=0.3.2 && <0.4,
-        Cabal >=1.16.0 && <1.17
-    main-is: ExeMain1.hs
-    cpp-options: -DCABAL
-    hs-source-dirs: src
-    other-modules:
-        Paths_cabal_bounds
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
-    ghc-options: -W
-
-executable other-exe
-    build-depends:
-        base >=4.6.0.1 && <4.7,
-        cmdargs >=0.10.7 && <0.11,
-        lens ==4.7.*,
-        pretty-show >=1.6.7 && <1.7,
-        strict >=0.3.2 && <0.4,
-        Cabal >=1.16.0 && <1.17
-    main-is: ExeMain2.hs
-    cpp-options: -DCABAL
-    hs-source-dirs: src
-    other-modules:
-        Paths_cabal_bounds
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
-    ghc-options: -W
-
-test-suite some-test
-    build-depends:
-        base >=4.6.0.1 && <4.7,
-        cmdargs >=0.10.7 && <0.11,
-        lens ==4.7.*,
-        pretty-show >=1.6.7 && <1.7,
-        strict >=0.3.2 && <0.4,
-        Cabal >=1.16.0 && <1.17
-    type: exitcode-stdio-1.0
-    main-is: TestMain1.hs
-    hs-source-dirs: src
-    other-modules:
-        Paths_cabal_bounds
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
-    ghc-options: -W
-test-suite other-test
-    build-depends:
-        base >=4.6.0.1 && <4.7,
-        cmdargs >=0.10.7 && <0.11,
-        lens ==4.7.*,
-        pretty-show >=1.6.7 && <1.7,
-        strict >=0.3.2 && <0.4,
-        Cabal >=1.16.0 && <1.17
-    type: exitcode-stdio-1.0
-    main-is: TestMain2.hs
-    hs-source-dirs: src
-    other-modules:
-        Paths_cabal_bounds
-        CabalBounds.Args
-        CabalBounds.Command
-        CabalBounds.Execute
-        CabalBounds.Lenses
-    ghc-options: -W
diff --git a/tests/goldenFiles/UpdateLowerOfAll.cabal b/tests/goldenFiles/UpdateLowerOfAll.cabal
--- a/tests/goldenFiles/UpdateLowerOfAll.cabal
+++ b/tests/goldenFiles/UpdateLowerOfAll.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateLowerOfAllExes.cabal b/tests/goldenFiles/UpdateLowerOfAllExes.cabal
--- a/tests/goldenFiles/UpdateLowerOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateLowerOfAllExes.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateLowerOfExe.cabal b/tests/goldenFiles/UpdateLowerOfExe.cabal
--- a/tests/goldenFiles/UpdateLowerOfExe.cabal
+++ b/tests/goldenFiles/UpdateLowerOfExe.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateLowerOfLibrary.cabal b/tests/goldenFiles/UpdateLowerOfLibrary.cabal
--- a/tests/goldenFiles/UpdateLowerOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateLowerOfLibrary.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateLowerOfOtherExe.cabal b/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateLowerOfOtherExe.cabal
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateLowerOfTest.cabal b/tests/goldenFiles/UpdateLowerOfTest.cabal
--- a/tests/goldenFiles/UpdateLowerOfTest.cabal
+++ b/tests/goldenFiles/UpdateLowerOfTest.cabal
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateMajor1Lower.cabal b/tests/goldenFiles/UpdateMajor1Lower.cabal
--- a/tests/goldenFiles/UpdateMajor1Lower.cabal
+++ b/tests/goldenFiles/UpdateMajor1Lower.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs <0.11,
         lens >=4,
         pretty-show >=1,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs <0.11,
         lens >=4,
         pretty-show >=1,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs <0.11,
         lens >=4,
         pretty-show >=1,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs <0.11,
         lens >=4,
         pretty-show >=1,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs <0.11,
         lens >=4,
         pretty-show >=1,
diff --git a/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal b/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
--- a/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
+++ b/tests/goldenFiles/UpdateMajor1LowerAndUpper.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs ==0.*,
         lens ==4.*,
         pretty-show ==1.*,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs ==0.*,
         lens ==4.*,
         pretty-show ==1.*,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs ==0.*,
         lens ==4.*,
         pretty-show ==1.*,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs ==0.*,
         lens ==4.*,
         pretty-show ==1.*,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base ==4.*,
+        base >=3 && <5,
         cmdargs ==0.*,
         lens ==4.*,
         pretty-show ==1.*,
diff --git a/tests/goldenFiles/UpdateMajor2Lower.cabal b/tests/goldenFiles/UpdateMajor2Lower.cabal
--- a/tests/goldenFiles/UpdateMajor2Lower.cabal
+++ b/tests/goldenFiles/UpdateMajor2Lower.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7 && <5,
+        base >=3 && <5,
         cmdargs ==0.10.*,
         lens >=4.7,
         pretty-show >=1.6,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7 && <5,
+        base >=3 && <5,
         cmdargs ==0.10.*,
         lens >=4.7,
         pretty-show >=1.6,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7 && <5,
+        base >=3 && <5,
         cmdargs ==0.10.*,
         lens >=4.7,
         pretty-show >=1.6,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7 && <5,
+        base >=3 && <5,
         cmdargs ==0.10.*,
         lens >=4.7,
         pretty-show >=1.6,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=4.7 && <5,
+        base >=3 && <5,
         cmdargs ==0.10.*,
         lens >=4.7,
         pretty-show >=1.6,
diff --git a/tests/goldenFiles/UpdateMajor2Upper.cabal b/tests/goldenFiles/UpdateMajor2Upper.cabal
--- a/tests/goldenFiles/UpdateMajor2Upper.cabal
+++ b/tests/goldenFiles/UpdateMajor2Upper.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateMinorLower.cabal b/tests/goldenFiles/UpdateMinorLower.cabal
--- a/tests/goldenFiles/UpdateMinorLower.cabal
+++ b/tests/goldenFiles/UpdateMinorLower.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=4.7.0.1 && <5,
+        base >=3 && <5,
         cmdargs >=0.10.7 && <0.11,
         lens >=4.7,
         pretty-show >=1.6.7,
diff --git a/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal b/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
--- a/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
+++ b/tests/goldenFiles/UpdateMinorLowerAndUpper.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base ==4.7.0.1.*,
+        base >=3 && <5,
         cmdargs ==0.10.7.*,
         lens >=4.7 && <4.7.1,
         pretty-show ==1.6.7.*,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base ==4.7.0.1.*,
+        base >=3 && <5,
         cmdargs ==0.10.7.*,
         lens >=4.7 && <4.7.1,
         pretty-show ==1.6.7.*,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base ==4.7.0.1.*,
+        base >=3 && <5,
         cmdargs ==0.10.7.*,
         lens >=4.7 && <4.7.1,
         pretty-show ==1.6.7.*,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base ==4.7.0.1.*,
+        base >=3 && <5,
         cmdargs ==0.10.7.*,
         lens >=4.7 && <4.7.1,
         pretty-show ==1.6.7.*,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base ==4.7.0.1.*,
+        base >=3 && <5,
         cmdargs ==0.10.7.*,
         lens >=4.7 && <4.7.1,
         pretty-show ==1.6.7.*,
diff --git a/tests/goldenFiles/UpdateMinorUpper.cabal b/tests/goldenFiles/UpdateMinorUpper.cabal
--- a/tests/goldenFiles/UpdateMinorUpper.cabal
+++ b/tests/goldenFiles/UpdateMinorUpper.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=3 && <4.7.0.2,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.10.8,
         lens <4.7.1,
         pretty-show <1.6.8,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=3 && <4.7.0.2,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.10.8,
         lens <4.7.1,
         pretty-show <1.6.8,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=3 && <4.7.0.2,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.10.8,
         lens <4.7.1,
         pretty-show <1.6.8,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=3 && <4.7.0.2,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.10.8,
         lens <4.7.1,
         pretty-show <1.6.8,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=3 && <4.7.0.2,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.10.8,
         lens <4.7.1,
         pretty-show <1.6.8,
diff --git a/tests/goldenFiles/UpdateUpperOfAll.cabal b/tests/goldenFiles/UpdateUpperOfAll.cabal
--- a/tests/goldenFiles/UpdateUpperOfAll.cabal
+++ b/tests/goldenFiles/UpdateUpperOfAll.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -89,7 +89,7 @@
     ghc-options: -W
 test-suite other-test
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateUpperOfAllExes.cabal b/tests/goldenFiles/UpdateUpperOfAllExes.cabal
--- a/tests/goldenFiles/UpdateUpperOfAllExes.cabal
+++ b/tests/goldenFiles/UpdateUpperOfAllExes.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateUpperOfExe.cabal b/tests/goldenFiles/UpdateUpperOfExe.cabal
--- a/tests/goldenFiles/UpdateUpperOfExe.cabal
+++ b/tests/goldenFiles/UpdateUpperOfExe.cabal
@@ -33,7 +33,7 @@
 
 executable cabal-bounds
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateUpperOfLibrary.cabal b/tests/goldenFiles/UpdateUpperOfLibrary.cabal
--- a/tests/goldenFiles/UpdateUpperOfLibrary.cabal
+++ b/tests/goldenFiles/UpdateUpperOfLibrary.cabal
@@ -16,7 +16,7 @@
 
 library
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateUpperOfOtherExe.cabal b/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
--- a/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
+++ b/tests/goldenFiles/UpdateUpperOfOtherExe.cabal
@@ -52,7 +52,7 @@
 
 executable other-exe
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
diff --git a/tests/goldenFiles/UpdateUpperOfTest.cabal b/tests/goldenFiles/UpdateUpperOfTest.cabal
--- a/tests/goldenFiles/UpdateUpperOfTest.cabal
+++ b/tests/goldenFiles/UpdateUpperOfTest.cabal
@@ -71,7 +71,7 @@
 
 test-suite some-test
     build-depends:
-        base >=3 && <4.8,
+        base >=3 && <5,
         cmdargs >=0.10.5 && <0.11,
         lens <4.8,
         pretty-show <1.7,
