    module Cabal.ReplOptions (
      Option(..)
    , Argument(..)
    , options
    ) where

    import           Imports

    data Option = Option {
      Option -> String
    optionName :: String
    , Option -> Maybe Char
    optionShortName :: Maybe Char
    , Option -> Argument
    optionArgument :: Argument
    , Option -> String
    optionHelp :: String
    } deriving (Option -> Option -> Bool
    (Option -> Option -> Bool)
    -> (Option -> Option -> Bool) -> Eq Option
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Option -> Option -> Bool
    == :: Option -> Option -> Bool
    $c/= :: Option -> Option -> Bool
    /= :: Option -> Option -> Bool
    Eq, Int -> Option -> ShowS
    [Option] -> ShowS
    Option -> String
    (Int -> Option -> ShowS)
    -> (Option -> String) -> ([Option] -> ShowS) -> Show Option
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Option -> ShowS
    showsPrec :: Int -> Option -> ShowS
    $cshow :: Option -> String
    show :: Option -> String
    $cshowList :: [Option] -> ShowS
    showList :: [Option] -> ShowS
    Show)

    data Argument = Argument String | NoArgument | OptionalArgument String
      deriving (Argument -> Argument -> Bool
    (Argument -> Argument -> Bool)
    -> (Argument -> Argument -> Bool) -> Eq Argument
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Argument -> Argument -> Bool
    == :: Argument -> Argument -> Bool
    $c/= :: Argument -> Argument -> Bool
    /= :: Argument -> Argument -> Bool
    Eq, Int -> Argument -> ShowS
    [Argument] -> ShowS
    Argument -> String
    (Int -> Argument -> ShowS)
    -> (Argument -> String) -> ([Argument] -> ShowS) -> Show Argument
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Argument -> ShowS
    showsPrec :: Int -> Argument -> ShowS
    $cshow :: Argument -> String
    show :: Argument -> String
    $cshowList :: [Argument] -> ShowS
    showList :: [Argument] -> ShowS
    Show)

    options :: [Option]
    options :: [Option]
    options = [
        String -> Maybe Char -> Argument -> String -> Option
    Option String
    "help" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'h') Argument
    NoArgument String
    "Show this help text"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "verbose" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'v') (String -> Argument
    OptionalArgument String
    "n") String
    "Control verbosity (n is 0--3, default verbosity level is 1)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "builddir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "The directory where Cabal puts generated build files (default dist)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "ghc" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'g') Argument
    NoArgument String
    "compile with GHC"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "ghcjs" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "compile with GHCJS"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "uhc" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "compile with UHC"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haskell-suite" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "compile with a haskell-suite compiler"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "with-compiler" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'w') (String -> Argument
    Argument String
    "PATH") String
    "give the path to a particular compiler"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "with-hc-pkg" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "give the path to the package tool"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "prefix" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "bake this prefix in preparation of installation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "bindir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for executables"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "libdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "libsubdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "subdirectory of libdir in which libs are installed"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "dynlibdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for dynamic libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "libexecdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for program executables"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "libexecsubdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "subdirectory of libexecdir in which private executables are installed"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "datadir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for read-only data"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "datasubdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "subdirectory of datadir in which data files are installed"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "docdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for documentation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "htmldir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for HTML documentation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddockdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for haddock interfaces"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "sysconfdir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "installation directory for configuration files"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "program-prefix" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PREFIX") String
    "prefix to be applied to installed executables"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "program-suffix" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "SUFFIX") String
    "suffix to be applied to installed executables"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-library-vanilla" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Vanilla libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-library-vanilla" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Vanilla libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-library-profiling" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'p') Argument
    NoArgument String
    "Enable Library profiling"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-library-profiling" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Library profiling"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-shared" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Shared library"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-shared" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Shared library"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-static" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Static library"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-static" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Static library"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-executable-dynamic" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Executable dynamic linking"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-executable-dynamic" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Executable dynamic linking"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-executable-static" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Executable fully static linking"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-executable-static" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Executable fully static linking"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-profiling" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Executable and library profiling"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-profiling" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Executable and library profiling"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-profiling-shared" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Build profiling shared libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-profiling-shared" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Build profiling shared libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-executable-profiling" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Executable profiling (DEPRECATED)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-executable-profiling" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Executable profiling (DEPRECATED)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "profiling-detail" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "level") String
    "Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "library-profiling-detail" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "level") String
    "Profiling detail level for libraries only."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-optimization" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'O') (String -> Argument
    OptionalArgument String
    "n") String
    "Build with optimization (n is 0--2, default is 1)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-optimization" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Build without optimization"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-debug-info" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    OptionalArgument String
    "n") String
    "Emit debug info (n is 0--3, default is 0)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-debug-info" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Don't emit debug info"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-build-info" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable build information generation during project building"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-build-info" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable build information generation during project building"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-library-for-ghci" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable compile library for use with GHCi"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-library-for-ghci" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable compile library for use with GHCi"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-split-sections" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-split-sections" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-split-objs" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable split library into smaller objects to reduce binary sizes (GHC 6.6+)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-split-objs" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable split library into smaller objects to reduce binary sizes (GHC 6.6+)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-executable-stripping" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable strip executables upon installation to reduce binary sizes"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-executable-stripping" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable strip executables upon installation to reduce binary sizes"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-library-stripping" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable strip libraries upon installation to reduce binary sizes"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-library-stripping" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable strip libraries upon installation to reduce binary sizes"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "configure-option" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "OPT") String
    "Extra option for configure"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "user" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable doing a per-user installation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "global" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable doing a per-user installation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "package-db" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DB") String
    "Append the given package database to the list of package databases used (to satisfy dependencies and register into). May be a specific file, 'global' or 'user'. The initial list is ['global'], ['global', 'user'], or ['global', $sandbox], depending on context. Use 'clear' to reset the list to empty. See the user guide for details."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "flags" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'f') (String -> Argument
    Argument String
    "FLAGS") String
    "Force values for the given flags in Cabal conditionals in the .cabal file. E.g., --flags=\"debug -usebytestrings\" forces the flag \"debug\" to true and \"usebytestrings\" to false."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "extra-include-dirs" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "A list of directories to search for header files"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-deterministic" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Try to be as deterministic as possible (used by the test suite)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-deterministic" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Try to be as deterministic as possible (used by the test suite)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "ipid" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "IPID") String
    "Installed package ID to compile this package as"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "cid" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "CID") String
    "Installed component ID to compile this component as"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "extra-lib-dirs" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "A list of directories to search for external libraries"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "extra-lib-dirs-static" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "A list of directories to search for external libraries when linking fully static executables"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "extra-framework-dirs" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "A list of directories to search for external frameworks (OS X only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "extra-prog-path" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "A list of directories to search for required programs (in addition to the normal search locations)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "instantiate-with" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "NAME=MOD") String
    "A mapping of signature names to concrete module instantiations."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-tests" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable dependency checking and compilation for test suites listed in the package description file."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-tests" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable dependency checking and compilation for test suites listed in the package description file."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-coverage" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable build package with Haskell Program Coverage. (GHC only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-coverage" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable build package with Haskell Program Coverage. (GHC only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-library-coverage" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable build package with Haskell Program Coverage. (GHC only) (DEPRECATED)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-library-coverage" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable build package with Haskell Program Coverage. (GHC only) (DEPRECATED)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-benchmarks" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable dependency checking and compilation for benchmarks listed in the package description file."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-benchmarks" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable dependency checking and compilation for benchmarks listed in the package description file."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-relocatable" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable building a package that is relocatable. (GHC only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-relocatable" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable building a package that is relocatable. (GHC only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-response-files" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "enable workaround for old versions of programs like \"ar\" that do not support @file arguments"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "allow-depending-on-private-libs" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Allow depending on private libraries. If set, the library visibility check MUST be done externally."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "coverage-for" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "UNITID") String
    "A list of unit-ids of libraries to include in the Haskell Program Coverage report."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "ignore-build-tools" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "cabal-lib-version" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "VERSION") String
    "Select which version of the Cabal lib to use to build packages (useful for testing)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-append" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable appending the new config to the old config file"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-append" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable appending the new config to the old config file"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-backup" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable the backup of the config file before any alterations"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-backup" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable the backup of the config file before any alterations"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "constraint" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'c') (String -> Argument
    Argument String
    "CONSTRAINT") String
    "Specify constraints on a package (version, installed/source, flags)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "preference" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "CONSTRAINT") String
    "Specify preferences (soft constraints) on the version of a package"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "solver" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "SOLVER") String
    "Select dependency solver to use (default: modular). Choices: modular."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "allow-older" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    OptionalArgument String
    "DEPS") String
    "Ignore lower bounds in all dependencies or DEPS"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "allow-newer" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    OptionalArgument String
    "DEPS") String
    "Ignore upper bounds in all dependencies or DEPS"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "write-ghc-environment-files" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "always|never|ghc8.4.4+") String
    "Whether to create a .ghc.environment file after a successful build (v2-build only)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-documentation" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable building of documentation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-documentation" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable building of documentation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "doc-index-file" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "A central index of haddock API documentation (template cannot use $pkgid)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "dry-run" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Do not install anything, only print what would be installed."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "only-download" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Do not build anything, only fetch the packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "max-backjumps" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "NUM") String
    "Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "reorder-goals" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "count-conflicts" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Try to speed up solving by preferring goals that are involved in a lot of conflicts (default)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "fine-grained-conflicts" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "minimize-conflict-set" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "independent-goals" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "prefer-oldest" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "shadow-installed-packages" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "If multiple package instances of the same version are installed, treat all but one as shadowed."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "strong-flags" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Do not defer flag choices (this used to be the default in cabal-install <= 1.20)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "allow-boot-library-installs" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "reject-unconstrained-dependencies" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "none|all") String
    "Require these packages to have constraints on them if they are to be selected (default: none)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "reinstall" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Install even if it means installing the same version again."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "avoid-reinstalls" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Do not select versions that would destructively overwrite installed packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "force-reinstalls" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Reinstall packages even if they will most likely break other installed packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "upgrade-dependencies" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Pick the latest version for all dependencies, rather than trying to pick an installed version."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "only-dependencies" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Install only the dependencies necessary to build the given packages"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "dependencies-only" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "A synonym for --only-dependencies"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "index-state" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "STATE") String
    "Use source package index state as it existed at a previous time. Accepts unix-timestamps (e.g. '@1474732068'), ISO8601 UTC timestamps (e.g. '2016-09-24T17:47:48Z'), or 'HEAD' (default: 'HEAD')."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "root-cmd" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "COMMAND") String
    "(No longer supported, do not use.)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "build-summary" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "build-log" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "remote-build-reporting" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "LEVEL") String
    "Generate build reports to send to a remote server (none, anonymous or detailed)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "report-planning-failure" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Generate build reports when the dependency solver fails. This is used by the Hackage build bot."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-per-component" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable Per-component builds when possible"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-per-component" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable Per-component builds when possible"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "run-tests" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run package test suites during installation."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "semaphore" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Use a semaphore so GHC can compile components in parallel"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "jobs" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'j') (String -> Argument
    OptionalArgument String
    "NUM") String
    "Run NUM jobs simultaneously (or '$ncpus' if no NUM is given)."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "keep-going" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "After a build failure, continue to build other unaffected packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "offline" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Don't download packages from the Internet."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-hoogle" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Generate a hoogle database"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-html" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Generate HTML documentation (the default)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-html-location" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "URL") String
    "Location of HTML documentation for pre-requisite packages"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-for-hackage" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Collection of flags to generate documentation suitable for upload to hackage"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-executables" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run haddock for Executables targets"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-tests" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run haddock for Test Suite targets"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-benchmarks" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run haddock for Benchmark targets"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-all" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run haddock for all targets"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-internal" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Run haddock for internal modules and include all symbols"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-css" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "Use PATH as the haddock stylesheet"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-hyperlink-source" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Hyperlink the documentation to the source code"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-quickjump" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Generate an index for interactive documentation navigation"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-hscolour-css" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "PATH") String
    "Use PATH as the HsColour stylesheet"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-contents-location" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "URL") String
    "Bake URL in as the location for the contents page"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-base-url" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "URL") String
    "Base URL for static files."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-resources-dir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "location of Haddocks static / auxiliary files"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-output-dir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "haddock-use-unicode" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Pass --use-unicode option to haddock"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-log" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-machine-log" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-show-details" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "FILTER") String
    "'always': always show results of individual test cases. 'never': never show results of individual test cases. 'failures': show results of failing test cases. 'streaming': show results of test cases in real time.'direct': send results of test cases in real time; no log file."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-keep-tix-files" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "keep .tix files for HPC between test runs"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-wrapper" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "FILE") String
    "Run test through a wrapper."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-fail-when-no-test-suites" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Exit with failure when no test suites are found."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-options" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATES") String
    "give extra options to test executables (name templates can use $pkgid, $compiler, $os, $arch, $test-suite)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "test-option" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "give extra option to test executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $test-suite)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "benchmark-options" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATES") String
    "give extra options to benchmark executables (name templates can use $pkgid, $compiler, $os, $arch, $benchmark)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "benchmark-option" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "TEMPLATE") String
    "give extra option to benchmark executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $benchmark)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "project-dir" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "Set the path of the project directory"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "project-file" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "FILE") String
    "Set the path of the cabal.project file (relative to the project directory when relative)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "ignore-project" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'z') Argument
    NoArgument String
    "Ignore local project configuration (unless --project-dir or --project-file is also set)"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "repl-no-load" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable loading of project modules at REPL startup."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "repl-options" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "FLAG") String
    "Use the option(s) for the repl"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "repl-multi-file" Maybe Char
    forall a. Maybe a
    Nothing (String -> Argument
    Argument String
    "DIR") String
    "Write repl options to this directory rather than starting repl mode"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "build-depends" (Char -> Maybe Char
    forall a. a -> Maybe a
    Just Char
    'b') (String -> Argument
    Argument String
    "DEPENDENCIES") String
    "Include additional packages in the environment presented to GHCi."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "no-transitive-deps" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Don't automatically include transitive dependencies of requested packages."
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "enable-multi-repl" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Enable multi-component repl sessions"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "disable-multi-repl" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Disable multi-component repl sessions"
      , String -> Maybe Char -> Argument -> String -> Option
    Option String
    "keep-temp-files" Maybe Char
    forall a. Maybe a
    Nothing Argument
    NoArgument String
    "Keep temporary files"
      ]