CABAL(1)

NAME
cabal - a system for building and packaging Haskell libraries and programs

SYNOPSIS
cabal command <arguments|[options]>... Where the commands are cabal list - List packages matching a search string.
cabal info - Display detailed information about a particular package.
cabal fetch - Downloads packages for later installation.
cabal get - Download/Extract a package's source code (repository).
cabal unpack - Deprecated alias for 'get'.
cabal check - Check the package for common mistakes.
cabal upload - Uploads source packages or documentation to Hackage.
cabal report - Upload build reports to a remote server.
cabal init - Create a new cabal package.
cabal user-config - Display and update the user's global cabal configuration.
cabal path - Query for simple project information.
cabal hscolour - Generate HsColour colourised code, in HTML format.
cabal list-bin - List the path to a single executable.
cabal configure - Add extra project configuration.
cabal new-configure - Add extra project configuration.
cabal v2-configure - Add extra project configuration.
cabal update - Updates list of known packages.
cabal new-update - Updates list of known packages.
cabal v2-update - Updates list of known packages.
cabal build - Compile targets within the project.
cabal new-build - Compile targets within the project.
cabal v2-build - Compile targets within the project.
cabal repl - Open an interactive session for the given component.
cabal new-repl - Open an interactive session for the given component.
cabal v2-repl - Open an interactive session for the given component.
cabal freeze - Freeze dependencies.
cabal new-freeze - Freeze dependencies.
cabal v2-freeze - Freeze dependencies.
cabal haddock - Build Haddock documentation.
cabal new-haddock - Build Haddock documentation.
cabal v2-haddock - Build Haddock documentation.
cabal haddock-project - Generate Haddocks HTML documentation for the cabal project.
cabal new-haddock-project - Generate Haddocks HTML documentation for the cabal project.
cabal v2-haddock-project - Generate Haddocks HTML documentation for the cabal project.
cabal install - Install packages.
cabal new-install - Install packages.
cabal v2-install - Install packages.
cabal run - Run an executable.
cabal new-run - Run an executable.
cabal v2-run - Run an executable.
cabal test - Run test-suites.
cabal new-test - Run test-suites.
cabal v2-test - Run test-suites.
cabal bench - Run benchmarks.
cabal new-bench - Run benchmarks.
cabal v2-bench - Run benchmarks.
cabal exec - Give a command access to the store.
cabal new-exec - Give a command access to the store.
cabal v2-exec - Give a command access to the store.
cabal clean - Clean the package store and remove temporary files.
cabal new-clean - Clean the package store and remove temporary files.
cabal v2-clean - Clean the package store and remove temporary files.
cabal sdist - Generate a source distribution file (.tar.gz).
cabal new-sdist - Generate a source distribution file (.tar.gz).
cabal v2-sdist - Generate a source distribution file (.tar.gz).
cabal target - Target a subset of all targets.
cabal new-target - Target a subset of all targets.
cabal v2-target - Target a subset of all targets.
cabal gen-bounds - Generate dependency bounds for packages in the project.
cabal new-gen-bounds - Generate dependency bounds for packages in the project.
cabal v2-gen-bounds - Generate dependency bounds for packages in the project.
cabal outdated - Check for outdated dependencies.
cabal new-outdated - Check for outdated dependencies.
cabal v2-outdated - Check for outdated dependencies.
cabal v1-configure - Prepare to build the package.
cabal v1-gen-bounds - Generate dependency bounds.
cabal v1-build - Compile all/specific components.
cabal v1-repl - Open an interpreter session for the given component.
cabal v1-freeze - Freeze dependencies.
cabal v1-haddock - Generate Haddock HTML documentation.
cabal v1-install - Install packages.
cabal v1-run - Builds and runs an executable.
cabal v1-test - Run all/specific tests in the test suite.
cabal v1-bench - Run all/specific benchmarks.
cabal v1-clean - Clean up after a build.
cabal v1-copy - Copy the files of all/specific components to install locations.
cabal v1-register - Register this package with the compiler.
cabal v1-reconfigure - Reconfigure the package if necessary.

DESCRIPTION
Cabal is the standard package system for Haskell software. It helps people to configure, build and install Haskell software and to distribute it easily to other users and developers. The command line cabal tool (also referred to as cabal-install) helps with installing existing packages and developing new packages. It can be used to work with local packages or to install packages from online package archives, including automatically installing dependencies. By default it is configured to use Hackage, which is Haskell's central package archive that contains thousands of libraries and applications in the Cabal package format.

OPTIONS
Global options: -V, --version
    Print version information
--numeric-version
    Print just the version number
--config-file FILE
    Set an alternate location for the config file
--ignore-expiry
    Ignore expiry dates on signed metadata (use only in exceptional circumstances)
--http-transport HttpTransport
    Set a transport for http(s) requests. Accepts 'curl', 'wget', 'powershell', and 'plain-http'. (default: 'curl')
--nix [(TrueorFalse)]
    [DEPRECATED] Nix integration: run commands through nix-shell if a 'shell.nix' file exists (default is False)
--enable-nix
    [DEPRECATED] Enable Nix integration: run commands through nix-shell if a 'shell.nix' file exists
--disable-nix
    [DEPRECATED] Disable Nix integration
--store-dir, --storedir DIR
    The location of the build store
--active-repositories REPOS
    The active package repositories (set to ':none' to disable all repositories)
--remote-repo NAME:URL
    The name and url for a remote repository
--local-no-index-repo NAME:PATH
    The name and a path for a local no-index repository
--remote-repo-cache DIR
    The location where downloads from all remote repos are cached
--logs-dir, --logsdir DIR
    The location to put log files
--default-user-config FILE
    Set a location for a cabal.config file for projects without their own cabal.config freeze file.

COMMANDS
cabal list Usage: cabal list [FLAGS]
   or: cabal list [FLAGS] STRINGS List all packages, or all packages matching one of the search strings. Use the package database specified with --package-db. If not specified, use the user package database. Examples:
  cabal list pandoc
    Will find pandoc, pandoc-citeproc, pandoc-lens, ... Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --installed
        Only print installed packages
    --simple-output
        Print in a easy-to-parse format
    -i, --ignore-case
    -I, --strict-case
        Ignore case distinctions
    --package-db DB
        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'], depending on context. Use 'clear' to reset the list to empty. See the user guide for details.
    -w, --with-compiler PATH
        give the path to a particular compiler
cabal info Usage: cabal info [FLAGS] PACKAGES Use the package database specified with --package-db. If not specified, use the user package database. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --package-db DB
        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'], depending on context. Use 'clear' to reset the list to empty. See the user guide for details.
cabal fetch Usage: cabal fetch [FLAGS] PACKAGES Note that it currently is not possible to fetch the dependencies for a package in the current directory. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --dependencies, --deps
        Resolve and fetch dependencies (default)
    --no-dependencies, --no-deps
        Ignore dependencies
    --dry-run
        Do not install anything, only print what would be installed.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
cabal get Usage: cabal get [PACKAGES] Creates a local copy of a package's source code. By default it gets the source tarball and unpacks it in a local subdirectory. Alternatively, with -s it will get the code from the source repository specified by the package. Examples:
  cabal get hlint
    Download the latest stable version of hlint;
  cabal get lens --source-repository=head
    Download the source repository of lens (i.e. git clone from github). Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -d, --destdir PATH
        Where to place the package source, defaults to the current directory.
    -s, --source-repository [[head|this|...]]
        Copy the package's source repository (ie git clone, darcs get, etc as appropriate).
    --index-state STATE
        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'). This determines which package versions are available as well as .cabal file revision is selected (unless --pristine is used).
    --only-package-description
        Unpack only the package description file.
    --package-description-only
        A synonym for --only-package-description.
    --pristine
        Unpack the original pristine tarball, rather than updating the .cabal file with the latest revision from the package archive.
cabal unpack Usage: cabal unpack [PACKAGES] Creates a local copy of a package's source code. By default it gets the source tarball and unpacks it in a local subdirectory. Alternatively, with -s it will get the code from the source repository specified by the package. Examples:
  cabal unpack hlint
    Download the latest stable version of hlint;
  cabal unpack lens --source-repository=head
    Download the source repository of lens (i.e. git clone from github). Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -d, --destdir PATH
        Where to place the package source, defaults to the current directory.
    -s, --source-repository [[head|this|...]]
        Copy the package's source repository (ie git clone, darcs get, etc as appropriate).
    --index-state STATE
        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'). This determines which package versions are available as well as .cabal file revision is selected (unless --pristine is used).
    --only-package-description
        Unpack only the package description file.
    --package-description-only
        A synonym for --only-package-description.
    --pristine
        Unpack the original pristine tarball, rather than updating the .cabal file with the latest revision from the package archive.
cabal check Usage: cabal check [FLAGS] Expects a .cabal package file in the current directory. Some checks correspond to the requirements to packages on Hackage. If no `Error` is reported, Hackage should accept the package. If errors are present, `check` exits with 1 and Hackage will refuse the package. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -i, --ignore WARNING
        ignore a specific warning (e.g. --ignore=missing-upper-bounds)
cabal upload Usage: cabal upload [FLAGS] TARFILES You can store your Hackage login in the ~/.config/cabal/config file (the %APPDATA%Relevant global configuration keys:
  token
  username
  password
  password-command Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --publish
        Publish the package instead of uploading it as a candidate.
    -d, --documentation
        Upload documentation instead of a source package. By default, this uploads documentation for a package candidate. To upload documentation for a published package, combine with --publish.
    -t, --token TOKEN
        Hackage authentication token.
    -u, --username USERNAME
        Hackage username.
    -p, --password PASSWORD
        Hackage password.
    -P, --password-command COMMAND
        Command to get Hackage password.
cabal report Usage: cabal report [FLAGS] You can store your Hackage login in the ~/.config/cabal/config file (the %APPDATA%Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -t, --token TOKEN
        Hackage authentication Token.
    -u, --username USERNAME
        Hackage username.
    -p, --password PASSWORD
        Hackage password.
cabal init Usage: cabal init [PROJECT ROOT] [FLAGS] Create a .cabal, CHANGELOG.md, minimal initial Haskell code and optionally a LICENSE file. Calling init with no arguments runs interactive mode, which will try to guess as much as possible and prompt you for the rest. Non-interactive mode can be invoked by the -n/--non-interactive flag, which will let you specify the options via flags and will use the defaults for the rest. It is also possible to call init with a single argument, which denotes the project's desired root directory. Flags:
    -i, --interactive
    -n, --non-interactive
        interactive mode.
    -q, --quiet
        Do not generate log messages to stdout.
    --no-comments
        Do not generate explanatory comments in the .cabal file.
    -m, --minimal
        Generate a minimal .cabal file, that is, do not include extra empty fields. Also implies --no-comments.
    --overwrite
        Overwrite any existing .cabal, LICENSE, or Setup.hs files without warning.
    --package-dir, --packagedir DIRECTORY
        Root directory of the package (default = current directory).
    -p, --package-name PACKAGE
        Name of the Cabal package to create.
    --version VERSION
        Initial version of the package.
    --cabal-version CABALSPECVERSION
        Version of the Cabal specification.
    -l, --license LICENSE
        Project license.
    -a, --author NAME
        Name of the project's author.
    -e, --email EMAIL
        Email address of the maintainer.
    -u, --homepage URL
        Project homepage and/or repository.
    -s, --synopsis TEXT
        Short project synopsis.
    -c, --category CATEGORY
        Project category.
    -x, --extra-source-file FILE
        Extra source file to be distributed with tarball.
    --extra-doc-file FILE
        Extra doc file to be distributed with tarball.
    --lib, --is-library
        Build a library.
    --exe, --is-executable
        Build an executable.
    --libandexe, --is-libandexe
        Build a library and an executable.
    --tests
        Generate a test suite, standalone or for a library.
    --test-dir DIR
        Directory containing tests.
    --simple
        Create a simple project with sensible defaults.
    --main-is FILE
        Specify the main module.
    --language LANGUAGE
        Specify the default language.
    -o, --expose-module MODULE
        Export a module from the package.
    --extension EXTENSION
        Use a LANGUAGE extension (in the other-extensions field).
    -d, --dependency DEPENDENCIES
        Package dependencies. Permits comma separated list of dependencies.
    --application-dir DIR
        Directory containing package application executable.
    --source-dir, --sourcedir DIR
        Directory containing package library source.
    --build-tool TOOL
        Required external build tool.
    -w, --with-compiler PATH
        give the path to a particular compiler. For 'init', this flag is used to set the bounds inferred for the 'base' package.
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
cabal user-config Usage: cabal user-config init
   or: cabal user-config diff
   or: cabal user-config update When upgrading cabal, the set of configuration keys and their default values may change. This command provides means to merge the existing config in ~/.config/cabal/config (i.e. all bindings that are actually defined and not commented out) and the default config of the new version. init: Creates a new config file at either ~/.config/cabal/config or as specified by --config-file, if given. An existing file won't be overwritten unless -f or --force is given. diff: Shows a pseudo-diff of the user's ~/.config/cabal/config file and the default configuration that would be created by cabal if the config file did not exist. update: Applies the pseudo-diff to the configuration that would be created by default, and write the result back to ~/.config/cabal/config. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -f, --force
        Overwrite the config file if it already exists.
    -a, --augment CONFIGLINE
        Additional setting to augment the config file (replacing a previous setting if it existed).
cabal path Usage: cabal path [FLAGS] Query for configuration and project information such as project GHC. The output order of query keys is implementation defined and should not be relied on. Examples:
  cabal path --store-dir
    Print the store-dir location of cabal.
  cabal path --output-format=json --compiler-info
    Print compiler information in json format.
  cabal path --output-format=json --installdir --compiler-info
    Print compiler information and installation directory in json format.
  cabal path --output-format=key-value --installdir
    Print the installation directory, taking project information into account.
  cabal path -z --output-format=key-value --installdir
    Print the installation directory, without taking project information into account. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --output-format json|key-value
        Output format of the requested path locations
    --compiler-info
    --no-compiler-info
        Print information of the project compiler
    --cache-home
        Print cabal's cache-home
    --remote-repo-cache
        Print cabal's remote-repo-cache
    --logs-dir
        Print cabal's logs-dir
    --store-dir
        Print cabal's store-dir
    --config-file
        Print cabal's config-file
    --installdir
        Print cabal's installdir
cabal hscolour Usage: cabal hscolour [FLAGS] Requires the hscolour program. Deprecated in favour of 'cabal haddock --hyperlink-source'. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --executables
        Run hscolour for Executables targets
    --tests
        Run hscolour for Test Suite targets
    --benchmarks
        Run hscolour for Benchmark targets
    --foreign-libraries
        Run hscolour for Foreign Library targets
    --all
        Run hscolour for all targets
    --css PATH
        Use a cascading style sheet
cabal list-bin Usage: cabal list-bin [FLAGS] TARGET List the path to a build product. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal configure Usage: cabal configure [FLAGS] Adjust how the project is built by setting additional package flags and other flags. The configuration options are written to the 'cabal.project.local' file (or '$project_file.local', if '--project-file' is specified) which extends the configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'build', 'repl' etc) though it can be extended/overridden on a per-command basis. The configure command also checks that the project configuration will work. In particular it checks that there is a consistent set of dependencies for the project as a whole. The 'cabal.project.local' file persists across 'clean' but is overwritten on the next use of the 'configure' command. The intention is that the 'cabal.project' file should be kept in source control but the 'cabal.project.local' should not. It is never necessary to use the 'configure' command. It is merely a convenience in cases where you do not want to specify flags to 'build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently. Examples:
  cabal configure --with-compiler ghc-7.10.3
    Adjust the project configuration to use the given compiler
    program and check the resulting configuration works.
  cabal configure
    Reset the local configuration to empty. To check that the
    project configuration works, use 'cabal build'. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal new-configure Usage: cabal new-configure [FLAGS] Adjust how the project is built by setting additional package flags and other flags. The configuration options are written to the 'cabal.project.local' file (or '$project_file.local', if '--project-file' is specified) which extends the configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'new-build', 'new-repl' etc) though it can be extended/overridden on a per-command basis. The new-configure command also checks that the project configuration will work. In particular it checks that there is a consistent set of dependencies for the project as a whole. The 'cabal.project.local' file persists across 'new-clean' but is overwritten on the next use of the 'new-configure' command. The intention is that the 'cabal.project' file should be kept in source control but the 'cabal.project.local' should not. It is never necessary to use the 'new-configure' command. It is merely a convenience in cases where you do not want to specify flags to 'new-build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently. Examples:
  cabal new-configure --with-compiler ghc-7.10.3
    Adjust the project configuration to use the given compiler
    program and check the resulting configuration works.
  cabal new-configure
    Reset the local configuration to empty. To check that the
    project configuration works, use 'cabal build'. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal v2-configure Usage: cabal v2-configure [FLAGS] Adjust how the project is built by setting additional package flags and other flags. The configuration options are written to the 'cabal.project.local' file (or '$project_file.local', if '--project-file' is specified) which extends the configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'v2-build', 'v2-repl' etc) though it can be extended/overridden on a per-command basis. The v2-configure command also checks that the project configuration will work. In particular it checks that there is a consistent set of dependencies for the project as a whole. The 'cabal.project.local' file persists across 'v2-clean' but is overwritten on the next use of the 'v2-configure' command. The intention is that the 'cabal.project' file should be kept in source control but the 'cabal.project.local' should not. It is never necessary to use the 'v2-configure' command. It is merely a convenience in cases where you do not want to specify flags to 'v2-build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently. Examples:
  cabal v2-configure --with-compiler ghc-7.10.3
    Adjust the project configuration to use the given compiler
    program and check the resulting configuration works.
  cabal v2-configure
    Reset the local configuration to empty. To check that the
    project configuration works, use 'cabal build'. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal update Usage: cabal update [FLAGS] [REPOS] For all known remote repositories, download the package list. REPO has the format <repo-id>[,<index-state>] where index-state follows the same format and syntax that is supported by the --index-state flag. Examples:
  cabal update
    Download the package list for all known remote repositories.
  cabal update hackage.haskell.org,@1474732068
  cabal update hackage.haskell.org,2016-09-24T17:47:48Z
  cabal update hackage.haskell.org,HEAD
  cabal update hackage.haskell.org
    Download hackage.haskell.org at a specific index state.
  cabal update hackage.haskell.org head.hackage
    Download hackage.haskell.org and head.hackage
    head.hackage must be a known repo-id. E.g. from
    your cabal.project(.local) file. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-update Usage: cabal new-update [FLAGS] [REPOS] For all known remote repositories, download the package list. REPO has the format <repo-id>[,<index-state>] where index-state follows the same format and syntax that is supported by the --index-state flag. Examples:
  cabal new-update
    Download the package list for all known remote repositories.
  cabal new-update hackage.haskell.org,@1474732068
  cabal new-update hackage.haskell.org,2016-09-24T17:47:48Z
  cabal new-update hackage.haskell.org,HEAD
  cabal new-update hackage.haskell.org
    Download hackage.haskell.org at a specific index state.
  cabal new-update hackage.haskell.org head.hackage
    Download hackage.haskell.org and head.hackage
    head.hackage must be a known repo-id. E.g. from
    your cabal.project(.local) file. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-update Usage: cabal v2-update [FLAGS] [REPOS] For all known remote repositories, download the package list. REPO has the format <repo-id>[,<index-state>] where index-state follows the same format and syntax that is supported by the --index-state flag. Examples:
  cabal v2-update
    Download the package list for all known remote repositories.
  cabal v2-update hackage.haskell.org,@1474732068
  cabal v2-update hackage.haskell.org,2016-09-24T17:47:48Z
  cabal v2-update hackage.haskell.org,HEAD
  cabal v2-update hackage.haskell.org
    Download hackage.haskell.org at a specific index state.
  cabal v2-update hackage.haskell.org head.hackage
    Download hackage.haskell.org and head.hackage
    head.hackage must be a known repo-id. E.g. from
    your cabal.project(.local) file. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal build Usage: cabal build [TARGETS] [FLAGS] Build one or more targets from within the project. The available targets are the packages in the project as well as individual components within those packages, including libraries, executables, test-suites or benchmarks. Targets can be specified by name or location. If no target is specified then the default is to build the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal build
    Build the package in the current directory or all packages in the project
  cabal build pkgname
    Build the package named pkgname in the project
  cabal build ./pkgfoo
    Build the package in the ./pkgfoo directory
  cabal build cname
    Build the component named cname in the project
  cabal build cname --enable-profiling
    Build the component in profiling mode (including dependencies as needed) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    --only-configure
    --no-only-configure
        Instead of performing a full build just run the configure step
cabal new-build Usage: cabal new-build [TARGETS] [FLAGS] Build one or more targets from within the project. The available targets are the packages in the project as well as individual components within those packages, including libraries, executables, test-suites or benchmarks. Targets can be specified by name or location. If no target is specified then the default is to build the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal new-build
    Build the package in the current directory or all packages in the project
  cabal new-build pkgname
    Build the package named pkgname in the project
  cabal new-build ./pkgfoo
    Build the package in the ./pkgfoo directory
  cabal new-build cname
    Build the component named cname in the project
  cabal new-build cname --enable-profiling
    Build the component in profiling mode (including dependencies as needed) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    --only-configure
    --no-only-configure
        Instead of performing a full build just run the configure step
cabal v2-build Usage: cabal v2-build [TARGETS] [FLAGS] Build one or more targets from within the project. The available targets are the packages in the project as well as individual components within those packages, including libraries, executables, test-suites or benchmarks. Targets can be specified by name or location. If no target is specified then the default is to build the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal v2-build
    Build the package in the current directory or all packages in the project
  cabal v2-build pkgname
    Build the package named pkgname in the project
  cabal v2-build ./pkgfoo
    Build the package in the ./pkgfoo directory
  cabal v2-build cname
    Build the component named cname in the project
  cabal v2-build cname --enable-profiling
    Build the component in profiling mode (including dependencies as needed) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    --only-configure
    --no-only-configure
        Instead of performing a full build just run the configure step
cabal repl Usage: cabal repl [TARGET] [FLAGS] Open an interactive session for a component within the project. The available targets are the same as for the 'build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples, open an interactive session:
  cabal repl
    for the default component in the package in the current directory
  cabal repl pkgname
    for the default component in the package named 'pkgname'
  cabal repl ./pkgfoo
    for the default component in the package in the ./pkgfoo directory
  cabal repl cname
    for the component named 'cname'
  cabal repl pkgname:cname
    for the component 'cname' in the package 'pkgname'
  cabal repl --build-depends lens
    add the latest version of the library 'lens' to the default component (or no componentif there is no project present)
  cabal repl --build-depends "lens >= 4.15 && < 4.18"
    add a version (constrained between 4.15 and 4.18) of the library 'lens' to the default component (or no component if there is no project present) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --repl-no-load
        Disable loading of project modules at REPL startup.
    --repl-options FLAG
        Use the option(s) for the repl
    --repl-multi-file DIR
        Write repl options to this directory rather than starting repl mode
    --with-repl PATH
        Give the path to a program to use for REPL
    -b, --build-depends DEPENDENCIES
        Include additional packages in the environment presented to GHCi.
    --no-transitive-deps
        Don't automatically include transitive dependencies of requested packages.
    --enable-multi-repl
    --disable-multi-repl
        multi-component repl sessions
cabal new-repl Usage: cabal new-repl [TARGET] [FLAGS] Open an interactive session for a component within the project. The available targets are the same as for the 'new-build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples, open an interactive session:
  cabal new-repl
    for the default component in the package in the current directory
  cabal new-repl pkgname
    for the default component in the package named 'pkgname'
  cabal new-repl ./pkgfoo
    for the default component in the package in the ./pkgfoo directory
  cabal new-repl cname
    for the component named 'cname'
  cabal new-repl pkgname:cname
    for the component 'cname' in the package 'pkgname'
  cabal new-repl --build-depends lens
    add the latest version of the library 'lens' to the default component (or no componentif there is no project present)
  cabal new-repl --build-depends "lens >= 4.15 && < 4.18"
    add a version (constrained between 4.15 and 4.18) of the library 'lens' to the default component (or no component if there is no project present) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --repl-no-load
        Disable loading of project modules at REPL startup.
    --repl-options FLAG
        Use the option(s) for the repl
    --repl-multi-file DIR
        Write repl options to this directory rather than starting repl mode
    --with-repl PATH
        Give the path to a program to use for REPL
    -b, --build-depends DEPENDENCIES
        Include additional packages in the environment presented to GHCi.
    --no-transitive-deps
        Don't automatically include transitive dependencies of requested packages.
    --enable-multi-repl
    --disable-multi-repl
        multi-component repl sessions
cabal v2-repl Usage: cabal v2-repl [TARGET] [FLAGS] Open an interactive session for a component within the project. The available targets are the same as for the 'v2-build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples, open an interactive session:
  cabal v2-repl
    for the default component in the package in the current directory
  cabal v2-repl pkgname
    for the default component in the package named 'pkgname'
  cabal v2-repl ./pkgfoo
    for the default component in the package in the ./pkgfoo directory
  cabal v2-repl cname
    for the component named 'cname'
  cabal v2-repl pkgname:cname
    for the component 'cname' in the package 'pkgname'
  cabal v2-repl --build-depends lens
    add the latest version of the library 'lens' to the default component (or no componentif there is no project present)
  cabal v2-repl --build-depends "lens >= 4.15 && < 4.18"
    add a version (constrained between 4.15 and 4.18) of the library 'lens' to the default component (or no component if there is no project present) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --repl-no-load
        Disable loading of project modules at REPL startup.
    --repl-options FLAG
        Use the option(s) for the repl
    --repl-multi-file DIR
        Write repl options to this directory rather than starting repl mode
    --with-repl PATH
        Give the path to a program to use for REPL
    -b, --build-depends DEPENDENCIES
        Include additional packages in the environment presented to GHCi.
    --no-transitive-deps
        Don't automatically include transitive dependencies of requested packages.
    --enable-multi-repl
    --disable-multi-repl
        multi-component repl sessions
cabal freeze Usage: cabal freeze [FLAGS] The project configuration is frozen so that it will be reproducible in future. The precise dependency configuration for the project is written to the 'cabal.project.freeze' file (or '$project_file.freeze' if '--project-file' is specified). This file extends the configuration from the 'cabal.project' file and thus is used as the project configuration for all other commands (such as 'build', 'repl' etc). The freeze file can be kept in source control. To make small adjustments it may be edited manually, or to make bigger changes you may wish to delete the file and re-freeze. For more control, one approach is to try variations using 'build --dry-run' with solver flags such as '--constraint="pkg < 1.2"' and once you have a satisfactory solution to freeze it using the 'freeze' command with the same set of flags. Examples:
  cabal freeze
    Freeze the configuration of the current project
  cabal build --dry-run --constraint="aeson < 1"
    Check what a solution with the given constraints would look like
  cabal freeze --constraint="aeson < 1"
    Freeze a solution using the given constraints Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-freeze Usage: cabal new-freeze [FLAGS] The project configuration is frozen so that it will be reproducible in future. The precise dependency configuration for the project is written to the 'cabal.project.freeze' file (or '$project_file.freeze' if '--project-file' is specified). This file extends the configuration from the 'cabal.project' file and thus is used as the project configuration for all other commands (such as 'new-build', 'new-repl' etc). The freeze file can be kept in source control. To make small adjustments it may be edited manually, or to make bigger changes you may wish to delete the file and re-freeze. For more control, one approach is to try variations using 'new-build --dry-run' with solver flags such as '--constraint="pkg < 1.2"' and once you have a satisfactory solution to freeze it using the 'new-freeze' command with the same set of flags. Examples:
  cabal new-freeze
    Freeze the configuration of the current project
  cabal new-build --dry-run --constraint="aeson < 1"
    Check what a solution with the given constraints would look like
  cabal new-freeze --constraint="aeson < 1"
    Freeze a solution using the given constraints Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-freeze Usage: cabal v2-freeze [FLAGS] The project configuration is frozen so that it will be reproducible in future. The precise dependency configuration for the project is written to the 'cabal.project.freeze' file (or '$project_file.freeze' if '--project-file' is specified). This file extends the configuration from the 'cabal.project' file and thus is used as the project configuration for all other commands (such as 'v2-build', 'v2-repl' etc). The freeze file can be kept in source control. To make small adjustments it may be edited manually, or to make bigger changes you may wish to delete the file and re-freeze. For more control, one approach is to try variations using 'v2-build --dry-run' with solver flags such as '--constraint="pkg < 1.2"' and once you have a satisfactory solution to freeze it using the 'v2-freeze' command with the same set of flags. Examples:
  cabal v2-freeze
    Freeze the configuration of the current project
  cabal v2-build --dry-run --constraint="aeson < 1"
    Check what a solution with the given constraints would look like
  cabal v2-freeze --constraint="aeson < 1"
    Freeze a solution using the given constraints Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal haddock Usage: cabal haddock [FLAGS] TARGET Build Haddock documentation for the specified packages within the project. Any package in the project can be specified. If no package is specified, the default is to build the documentation for the package in the current directory. The default behaviour is to build documentation for the exposed modules of the library component (if any). This can be changed with the '--internal', '--executables', '--tests', '--benchmarks' or '--all' flags. Currently, documentation for dependencies is NOT built. This behavior may change in future. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal haddock pkgname Build documentation for the package named pkgname Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --open
        Open generated documentation in the browser
cabal new-haddock Usage: cabal new-haddock [FLAGS] TARGET Build Haddock documentation for the specified packages within the project. Any package in the project can be specified. If no package is specified, the default is to build the documentation for the package in the current directory. The default behaviour is to build documentation for the exposed modules of the library component (if any). This can be changed with the '--internal', '--executables', '--tests', '--benchmarks' or '--all' flags. Currently, documentation for dependencies is NOT built. This behavior may change in future. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal new-haddock pkgname Build documentation for the package named pkgname Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --open
        Open generated documentation in the browser
cabal v2-haddock Usage: cabal v2-haddock [FLAGS] TARGET Build Haddock documentation for the specified packages within the project. Any package in the project can be specified. If no package is specified, the default is to build the documentation for the package in the current directory. The default behaviour is to build documentation for the exposed modules of the library component (if any). This can be changed with the '--internal', '--executables', '--tests', '--benchmarks' or '--all' flags. Currently, documentation for dependencies is NOT built. This behavior may change in future. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal v2-haddock pkgname Build documentation for the package named pkgname Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --open
        Open generated documentation in the browser
cabal haddock-project Usage: cabal haddock-project [FLAGS]
   or: cabal haddock-project COMPONENTS [FLAGS] Requires the program haddock, version 2.26. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --hackage
        A short-cut option to build documentation linked to hackage.
    --output [DIRECTORY]
        Output directory
    --prologue [PATH]
        File path to a prologue file in haddock format
    --hoogle
        Generate a hoogle database
    --html-location URL
        Location of HTML documentation for pre-requisite packages
    --executables
        Run haddock for Executables targets
    --tests
        Run haddock for Test Suite targets
    --benchmarks
        Run haddock for Benchmark targets
    --foreign-libraries
        Run haddock for Foreign Library targets
    --all, --haddock-all
        Run haddock for all targets
    --internal
        Run haddock for internal modules and include all symbols
    --css PATH
        Use PATH as the haddock stylesheet
    --hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --resources-dir DIR
        location of Haddocks static / auxiliary files
    --use-unicode
        Pass --use-unicode option to haddock
    --with-ghc PATH
        give the path to ghc
    --with-haddock PATH
        give the path to haddock
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
cabal new-haddock-project Usage: cabal haddock-project [FLAGS]
   or: cabal haddock-project COMPONENTS [FLAGS] Requires the program haddock, version 2.26. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --hackage
        A short-cut option to build documentation linked to hackage.
    --output [DIRECTORY]
        Output directory
    --prologue [PATH]
        File path to a prologue file in haddock format
    --hoogle
        Generate a hoogle database
    --html-location URL
        Location of HTML documentation for pre-requisite packages
    --executables
        Run haddock for Executables targets
    --tests
        Run haddock for Test Suite targets
    --benchmarks
        Run haddock for Benchmark targets
    --foreign-libraries
        Run haddock for Foreign Library targets
    --all, --haddock-all
        Run haddock for all targets
    --internal
        Run haddock for internal modules and include all symbols
    --css PATH
        Use PATH as the haddock stylesheet
    --hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --resources-dir DIR
        location of Haddocks static / auxiliary files
    --use-unicode
        Pass --use-unicode option to haddock
    --with-ghc PATH
        give the path to ghc
    --with-haddock PATH
        give the path to haddock
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
cabal v2-haddock-project Usage: cabal haddock-project [FLAGS]
   or: cabal haddock-project COMPONENTS [FLAGS] Requires the program haddock, version 2.26. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --hackage
        A short-cut option to build documentation linked to hackage.
    --output [DIRECTORY]
        Output directory
    --prologue [PATH]
        File path to a prologue file in haddock format
    --hoogle
        Generate a hoogle database
    --html-location URL
        Location of HTML documentation for pre-requisite packages
    --executables
        Run haddock for Executables targets
    --tests
        Run haddock for Test Suite targets
    --benchmarks
        Run haddock for Benchmark targets
    --foreign-libraries
        Run haddock for Foreign Library targets
    --all, --haddock-all
        Run haddock for all targets
    --internal
        Run haddock for internal modules and include all symbols
    --css PATH
        Use PATH as the haddock stylesheet
    --hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --resources-dir DIR
        location of Haddocks static / auxiliary files
    --use-unicode
        Pass --use-unicode option to haddock
    --with-ghc PATH
        give the path to ghc
    --with-haddock PATH
        give the path to haddock
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
cabal install Usage: cabal install [TARGETS] [FLAGS] Installs one or more packages. This is done by installing them in the store and symlinking or copying the executables in the directory specified by the --installdir flag (`~/.local/bin/` by default). If you want the installed executables to be available globally, make sure that the PATH environment variable contains that directory. If TARGET is a library and --lib (provisional) is used, it will be added to the global environment. When doing this, cabal will try to build a plan that includes all the previously installed libraries. This is currently not implemented. Examples:
  cabal install
    Install the package in the current directory
  cabal install pkgname
    Install the package named pkgname (fetching it from hackage if necessary)
  cabal install ./pkgfoo
    Install the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --lib
        Install libraries rather than executables from the target package (provisional, see https://github.com/haskell/cabal/issues/6481 for more information).
    --package-env, --env ENV
        Set the environment file that may be modified.
    --overwrite-policy always|never|prompt
        How to handle already existing symlinks.
    --install-method default|copy|symlink
        How to install the executables.
    --installdir DIR
        Where to install (by symlinking or copying) the executables in.
cabal new-install Usage: cabal new-install [TARGETS] [FLAGS] Installs one or more packages. This is done by installing them in the store and symlinking or copying the executables in the directory specified by the --installdir flag (`~/.local/bin/` by default). If you want the installed executables to be available globally, make sure that the PATH environment variable contains that directory. If TARGET is a library and --lib (provisional) is used, it will be added to the global environment. When doing this, cabal will try to build a plan that includes all the previously installed libraries. This is currently not implemented. Examples:
  cabal new-install
    Install the package in the current directory
  cabal new-install pkgname
    Install the package named pkgname (fetching it from hackage if necessary)
  cabal new-install ./pkgfoo
    Install the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --lib
        Install libraries rather than executables from the target package (provisional, see https://github.com/haskell/cabal/issues/6481 for more information).
    --package-env, --env ENV
        Set the environment file that may be modified.
    --overwrite-policy always|never|prompt
        How to handle already existing symlinks.
    --install-method default|copy|symlink
        How to install the executables.
    --installdir DIR
        Where to install (by symlinking or copying) the executables in.
cabal v2-install Usage: cabal v2-install [TARGETS] [FLAGS] Installs one or more packages. This is done by installing them in the store and symlinking or copying the executables in the directory specified by the --installdir flag (`~/.local/bin/` by default). If you want the installed executables to be available globally, make sure that the PATH environment variable contains that directory. If TARGET is a library and --lib (provisional) is used, it will be added to the global environment. When doing this, cabal will try to build a plan that includes all the previously installed libraries. This is currently not implemented. Examples:
  cabal v2-install
    Install the package in the current directory
  cabal v2-install pkgname
    Install the package named pkgname (fetching it from hackage if necessary)
  cabal v2-install ./pkgfoo
    Install the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --lib
        Install libraries rather than executables from the target package (provisional, see https://github.com/haskell/cabal/issues/6481 for more information).
    --package-env, --env ENV
        Set the environment file that may be modified.
    --overwrite-policy always|never|prompt
        How to handle already existing symlinks.
    --install-method default|copy|symlink
        How to install the executables.
    --installdir DIR
        Where to install (by symlinking or copying) the executables in.
cabal run Usage: cabal run [TARGET] [FLAGS] [-- EXECUTABLE_FLAGS] Runs the specified executable-like component (an executable, a test, or a benchmark), first ensuring it is up to date. Any executable-like component in any package in the project can be specified. A package can be specified if contains just one executable-like, preferring a single executable. The default is to use the package in the current directory if it contains just one executable-like. Extra arguments can be passed to the program, but use '--' to separate arguments for the program from arguments for cabal. The executable is run in an environment where it can find its data files inplace in the build tree. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal run
    Run the executable-like in the package in the current directory
  cabal run foo-tool
    Run the named executable-like (in any package in the project)
  cabal run pkgfoo:foo-tool
    Run the executable-like 'foo-tool' in the package 'pkgfoo'
  cabal run foo -O2 -- dothing --fooflag
    Build with '-O2' and run the program, passing it extra arguments. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-run Usage: cabal new-run [TARGET] [FLAGS] [-- EXECUTABLE_FLAGS] Runs the specified executable-like component (an executable, a test, or a benchmark), first ensuring it is up to date. Any executable-like component in any package in the project can be specified. A package can be specified if contains just one executable-like, preferring a single executable. The default is to use the package in the current directory if it contains just one executable-like. Extra arguments can be passed to the program, but use '--' to separate arguments for the program from arguments for cabal. The executable is run in an environment where it can find its data files inplace in the build tree. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal new-run
    Run the executable-like in the package in the current directory
  cabal new-run foo-tool
    Run the named executable-like (in any package in the project)
  cabal new-run pkgfoo:foo-tool
    Run the executable-like 'foo-tool' in the package 'pkgfoo'
  cabal new-run foo -O2 -- dothing --fooflag
    Build with '-O2' and run the program, passing it extra arguments. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-run Usage: cabal v2-run [TARGET] [FLAGS] [-- EXECUTABLE_FLAGS] Runs the specified executable-like component (an executable, a test, or a benchmark), first ensuring it is up to date. Any executable-like component in any package in the project can be specified. A package can be specified if contains just one executable-like, preferring a single executable. The default is to use the package in the current directory if it contains just one executable-like. Extra arguments can be passed to the program, but use '--' to separate arguments for the program from arguments for cabal. The executable is run in an environment where it can find its data files inplace in the build tree. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal v2-run
    Run the executable-like in the package in the current directory
  cabal v2-run foo-tool
    Run the named executable-like (in any package in the project)
  cabal v2-run pkgfoo:foo-tool
    Run the executable-like 'foo-tool' in the package 'pkgfoo'
  cabal v2-run foo -O2 -- dothing --fooflag
    Build with '-O2' and run the program, passing it extra arguments. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal test Usage: cabal test [TARGETS] [FLAGS] Runs the specified test-suites, first ensuring they are up to date. Any test-suite in any package in the project can be specified. A package can be specified in which case all the test-suites in the package are run. The default is to run all the test-suites in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. To pass command-line arguments to a test suite, see the run command. Examples:
  cabal test
    Run all the test-suites in the package in the current directory
  cabal test pkgname
    Run all the test-suites in the package named pkgname
  cabal test cname
    Run the test-suite named cname
  cabal test cname --enable-coverage
    Run the test-suite built with code coverage (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-test Usage: cabal new-test [TARGETS] [FLAGS] Runs the specified test-suites, first ensuring they are up to date. Any test-suite in any package in the project can be specified. A package can be specified in which case all the test-suites in the package are run. The default is to run all the test-suites in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. To pass command-line arguments to a test suite, see the new-run command. Examples:
  cabal new-test
    Run all the test-suites in the package in the current directory
  cabal new-test pkgname
    Run all the test-suites in the package named pkgname
  cabal new-test cname
    Run the test-suite named cname
  cabal new-test cname --enable-coverage
    Run the test-suite built with code coverage (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-test Usage: cabal v2-test [TARGETS] [FLAGS] Runs the specified test-suites, first ensuring they are up to date. Any test-suite in any package in the project can be specified. A package can be specified in which case all the test-suites in the package are run. The default is to run all the test-suites in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. To pass command-line arguments to a test suite, see the v2-run command. Examples:
  cabal v2-test
    Run all the test-suites in the package in the current directory
  cabal v2-test pkgname
    Run all the test-suites in the package named pkgname
  cabal v2-test cname
    Run the test-suite named cname
  cabal v2-test cname --enable-coverage
    Run the test-suite built with code coverage (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal bench Usage: cabal bench [TARGETS] [FLAGS] Runs the specified benchmarks, first ensuring they are up to date. Any benchmark in any package in the project can be specified. A package can be specified in which case all the benchmarks in the package are run. The default is to run all the benchmarks in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal bench
    Run all the benchmarks in the package in the current directory
  cabal bench pkgname
    Run all the benchmarks in the package named pkgname
  cabal bench cname
    Run the benchmark named cname
  cabal bench cname -O2
    Run the benchmark built with '-O2' (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-bench Usage: cabal new-bench [TARGETS] [FLAGS] Runs the specified benchmarks, first ensuring they are up to date. Any benchmark in any package in the project can be specified. A package can be specified in which case all the benchmarks in the package are run. The default is to run all the benchmarks in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal new-bench
    Run all the benchmarks in the package in the current directory
  cabal new-bench pkgname
    Run all the benchmarks in the package named pkgname
  cabal new-bench cname
    Run the benchmark named cname
  cabal new-bench cname -O2
    Run the benchmark built with '-O2' (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-bench Usage: cabal v2-bench [TARGETS] [FLAGS] Runs the specified benchmarks, first ensuring they are up to date. Any benchmark in any package in the project can be specified. A package can be specified in which case all the benchmarks in the package are run. The default is to run all the benchmarks in the package in the current directory. Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files. Examples:
  cabal v2-bench
    Run all the benchmarks in the package in the current directory
  cabal v2-bench pkgname
    Run all the benchmarks in the package named pkgname
  cabal v2-bench cname
    Run the benchmark named cname
  cabal v2-bench cname -O2
    Run the benchmark built with '-O2' (including local libs used) Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal exec Usage: cabal exec [FLAGS] [--] COMMAND [--] [ARGS] During development it is often useful to run build tasks and perform one-off program executions to experiment with the behavior of build tools. It is convenient to run these tools in the same way cabal itself would. The `cabal exec` command provides a way to do so. Compiler tools will be configured to see the same subset of the store that builds would see. The PATH is modified to make all executables in the dependency tree available (provided they have been built already). Commands are also rewritten in the way cabal itself would. For example, `cabal exec ghc` will consult the configuration to choose an appropriate version of ghc and to include any ghc-specific flags requested. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal new-exec Usage: cabal new-exec [FLAGS] [--] COMMAND [--] [ARGS] During development it is often useful to run build tasks and perform one-off program executions to experiment with the behavior of build tools. It is convenient to run these tools in the same way cabal itself would. The `cabal new-exec` command provides a way to do so. Compiler tools will be configured to see the same subset of the store that builds would see. The PATH is modified to make all executables in the dependency tree available (provided they have been built already). Commands are also rewritten in the way cabal itself would. For example, `cabal new-exec ghc` will consult the configuration to choose an appropriate version of ghc and to include any ghc-specific flags requested. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal v2-exec Usage: cabal v2-exec [FLAGS] [--] COMMAND [--] [ARGS] During development it is often useful to run build tasks and perform one-off program executions to experiment with the behavior of build tools. It is convenient to run these tools in the same way cabal itself would. The `cabal v2-exec` command provides a way to do so. Compiler tools will be configured to see the same subset of the store that builds would see. The PATH is modified to make all executables in the dependency tree available (provided they have been built already). Commands are also rewritten in the way cabal itself would. For example, `cabal v2-exec ghc` will consult the configuration to choose an appropriate version of ghc and to include any ghc-specific flags requested. Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal clean Usage: cabal new-clean [FLAGS] Removes all temporary files created during the building process (.hi, .o, preprocessed sources, etc.) and also empties out the local caches (by default). Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -s, --save-config
        Save configuration, only remove build artifacts
cabal new-clean Usage: cabal new-clean [FLAGS] Removes all temporary files created during the building process (.hi, .o, preprocessed sources, etc.) and also empties out the local caches (by default). Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -s, --save-config
        Save configuration, only remove build artifacts
cabal v2-clean Usage: cabal new-clean [FLAGS] Removes all temporary files created during the building process (.hi, .o, preprocessed sources, etc.) and also empties out the local caches (by default). Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -s, --save-config
        Save configuration, only remove build artifacts
cabal sdist Usage: cabal sdist [FLAGS] [PACKAGES] Generates tarballs of project packages suitable for upload to Hackage. Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -l, --list-only
        Just list the sources, do not make a tarball
    --null-sep
        Separate the source files with NUL bytes rather than newlines.
    -o, --output-directory, --outputdir PATH
        Choose the output directory of this command. '-' sends all output to stdout
cabal new-sdist Usage: cabal new-sdist [FLAGS] [PACKAGES] Generates tarballs of project packages suitable for upload to Hackage. Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -l, --list-only
        Just list the sources, do not make a tarball
    --null-sep
        Separate the source files with NUL bytes rather than newlines.
    -o, --output-directory, --outputdir PATH
        Choose the output directory of this command. '-' sends all output to stdout
cabal v2-sdist Usage: cabal v2-sdist [FLAGS] [PACKAGES] Generates tarballs of project packages suitable for upload to Hackage. Flags:
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    -l, --list-only
        Just list the sources, do not make a tarball
    --null-sep
        Separate the source files with NUL bytes rather than newlines.
    -o, --output-directory, --outputdir PATH
        Choose the output directory of this command. '-' sends all output to stdout
cabal target Usage: cabal target [TARGETS] Discover targets in a project for use with other commands taking [TARGETS]. This command, like many others, takes [TARGETS]. Taken together, these will select for a set of targets in the project. When none are supplied, the command acts as if 'all' was supplied. Targets in the returned subset are shown sorted and fully-qualified. A [TARGETS] item can be one of these target forms: - a package target (e.g. [pkg:]package) - a component target (e.g. [package:][ctype:]component) - all packages (e.g. all) - components of a particular type (e.g. package:ctypes or all:ctypes) - a module target: (e.g. [package:][ctype:]module) - a filepath target: (e.g. [package:][ctype:]filepath) The ctypes, in short form and (long form), can be one of: - libs (libraries) - exes (executables) - tests - benches (benchmarks) - flibs (foreign-libraries) WARNING: For a package, all, module or filepath target, cabal target [TARGETS] will only show 'libs' and 'exes' of the [TARGETS] by default. To also show tests and benchmarks, enable them with '--enable-tests' and '--enable-benchmarks'. NOTE: For commands expecting a unique TARGET, a fully-qualified target is the safe way to go but it may be convenient to type out a shorter TARGET. For example, if the set of 'cabal target all:exes' has one item then 'cabal list-bin all:exes' will work too. Examples:
  cabal target all
    Targets of the package in the current directory or all packages in the project
  cabal target pkgname
    Targets of the package named pkgname in the project
  cabal target ./pkgfoo
    Targets of the package in the ./pkgfoo directory
  cabal target cname
    Targets of the component named cname in the project Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal new-target Usage: cabal new-target [TARGETS] Discover targets in a project for use with other commands taking [TARGETS]. This command, like many others, takes [TARGETS]. Taken together, these will select for a set of targets in the project. When none are supplied, the command acts as if 'all' was supplied. Targets in the returned subset are shown sorted and fully-qualified. A [TARGETS] item can be one of these target forms: - a package target (e.g. [pkg:]package) - a component target (e.g. [package:][ctype:]component) - all packages (e.g. all) - components of a particular type (e.g. package:ctypes or all:ctypes) - a module target: (e.g. [package:][ctype:]module) - a filepath target: (e.g. [package:][ctype:]filepath) The ctypes, in short form and (long form), can be one of: - libs (libraries) - exes (executables) - tests - benches (benchmarks) - flibs (foreign-libraries) WARNING: For a package, all, module or filepath target, cabal target [TARGETS] will only show 'libs' and 'exes' of the [TARGETS] by default. To also show tests and benchmarks, enable them with '--enable-tests' and '--enable-benchmarks'. NOTE: For commands expecting a unique TARGET, a fully-qualified target is the safe way to go but it may be convenient to type out a shorter TARGET. For example, if the set of 'cabal target all:exes' has one item then 'cabal list-bin all:exes' will work too. Examples:
  cabal new-target all
    Targets of the package in the current directory or all packages in the project
  cabal new-target pkgname
    Targets of the package named pkgname in the project
  cabal new-target ./pkgfoo
    Targets of the package in the ./pkgfoo directory
  cabal new-target cname
    Targets of the component named cname in the project Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal v2-target Usage: cabal v2-target [TARGETS] Discover targets in a project for use with other commands taking [TARGETS]. This command, like many others, takes [TARGETS]. Taken together, these will select for a set of targets in the project. When none are supplied, the command acts as if 'all' was supplied. Targets in the returned subset are shown sorted and fully-qualified. A [TARGETS] item can be one of these target forms: - a package target (e.g. [pkg:]package) - a component target (e.g. [package:][ctype:]component) - all packages (e.g. all) - components of a particular type (e.g. package:ctypes or all:ctypes) - a module target: (e.g. [package:][ctype:]module) - a filepath target: (e.g. [package:][ctype:]filepath) The ctypes, in short form and (long form), can be one of: - libs (libraries) - exes (executables) - tests - benches (benchmarks) - flibs (foreign-libraries) WARNING: For a package, all, module or filepath target, cabal target [TARGETS] will only show 'libs' and 'exes' of the [TARGETS] by default. To also show tests and benchmarks, enable them with '--enable-tests' and '--enable-benchmarks'. NOTE: For commands expecting a unique TARGET, a fully-qualified target is the safe way to go but it may be convenient to type out a shorter TARGET. For example, if the set of 'cabal target all:exes' has one item then 'cabal list-bin all:exes' will work too. Examples:
  cabal v2-target all
    Targets of the package in the current directory or all packages in the project
  cabal v2-target pkgname
    Targets of the package named pkgname in the project
  cabal v2-target ./pkgfoo
    Targets of the package in the ./pkgfoo directory
  cabal v2-target cname
    Targets of the component named cname in the project Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
cabal gen-bounds Usage: cabal gen-bounds [TARGETS] [FLAGS] Generate PVP-compliant dependency bounds for packages in the project. Examples:
  cabal gen-bounds
    Generate bounds for the package in the current directory or all packages in the project
  cabal gen-bounds pkgname
    Generate bounds for the package named pkgname in the project
  cabal gen-bounds ./pkgfoo
    Generate bounds for the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal new-gen-bounds Usage: cabal new-gen-bounds [TARGETS] [FLAGS] Generate PVP-compliant dependency bounds for packages in the project. Examples:
  cabal new-gen-bounds
    Generate bounds for the package in the current directory or all packages in the project
  cabal new-gen-bounds pkgname
    Generate bounds for the package named pkgname in the project
  cabal new-gen-bounds ./pkgfoo
    Generate bounds for the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal v2-gen-bounds Usage: cabal v2-gen-bounds [TARGETS] [FLAGS] Generate PVP-compliant dependency bounds for packages in the project. Examples:
  cabal v2-gen-bounds
    Generate bounds for the package in the current directory or all packages in the project
  cabal v2-gen-bounds pkgname
    Generate bounds for the package named pkgname in the project
  cabal v2-gen-bounds ./pkgfoo
    Generate bounds for the package in the ./pkgfoo directory Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
cabal outdated Usage: cabal outdated [FLAGS] [PACKAGES] Checks for outdated dependencies in the package description file or freeze file Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --freeze-file, --v1-freeze-file
        Act on the freeze file
    --project-context, --v2-freeze-file, --new-freeze-file
        Check for outdated dependencies in the project context, for example, dependencies specified in cabal.project orcabal.project.freeze.
    --simple-output
        Only print names of outdated dependencies, one per line
    --exit-code
        Exit with non-zero when there are outdated dependencies
    -q, --quiet
        Don't print any output. Implies '--exit-code' and '-v0'
    --ignore PKGS
        Packages to ignore
    --minor [PKGS]
        Ignore major version bumps for these packages
cabal new-outdated Usage: cabal outdated [FLAGS] [PACKAGES] Checks for outdated dependencies in the package description file or freeze file Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --freeze-file, --v1-freeze-file
        Act on the freeze file
    --project-context, --v2-freeze-file, --new-freeze-file
        Check for outdated dependencies in the project context, for example, dependencies specified in cabal.project orcabal.project.freeze.
    --simple-output
        Only print names of outdated dependencies, one per line
    --exit-code
        Exit with non-zero when there are outdated dependencies
    -q, --quiet
        Don't print any output. Implies '--exit-code' and '-v0'
    --ignore PKGS
        Packages to ignore
    --minor [PKGS]
        Ignore major version bumps for these packages
cabal v2-outdated Usage: cabal outdated [FLAGS] [PACKAGES] Checks for outdated dependencies in the package description file or freeze file Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    --project-dir DIR
        Set the path of the project directory
    --project-file FILE
        Set the path of the cabal.project file (relative to the project directory when relative)
    -z, --ignore-project
    --no-ignore-project
        Ignore local project configuration (unless --project-dir or --project-file is also set)
    --freeze-file, --v1-freeze-file
        Act on the freeze file
    --project-context, --v2-freeze-file, --new-freeze-file
        Check for outdated dependencies in the project context, for example, dependencies specified in cabal.project orcabal.project.freeze.
    --simple-output
        Only print names of outdated dependencies, one per line
    --exit-code
        Exit with non-zero when there are outdated dependencies
    -q, --quiet
        Don't print any output. Implies '--exit-code' and '-v0'
    --ignore PKGS
        Packages to ignore
    --minor [PKGS]
        Ignore major version bumps for these packages
cabal v1-configure Usage: cabal v1-configure [FLAGS] Configure how the package is built by setting package (and other) flags. The configuration affects several other commands, including v1-build, v1-test, v1-bench, v1-run, v1-repl. The flags --with-PROG and --PROG-option(s) can be used with the following programs:
  alex ar c2hs cpphs doctest gcc ghc ghc-pkg ghcjs ghcjs-pkg haddock happy hpc
  hsc2hs hscolour jhc ld pkg-config runghc strip tar uhc Examples:
  cabal v1-configure
    Configure with defaults;
  cabal v1-configure --enable-tests -fcustomflag
    Configure building package including tests,
    with some package-specific flag. The v1-configure command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
cabal v1-gen-bounds Usage: cabal gen-bounds [FLAGS] Generates bounds for all dependencies that do not currently have them. Generated bounds are printed to stdout. You can then paste them into your .cabal file. The v1-gen-bounds command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
cabal v1-build Usage: cabal v1-build [FLAGS]
   or: cabal v1-build COMPONENTS [FLAGS] Components encompass executables, tests, and benchmarks. Affected by configuration options, see `v1-configure`. Examples:
  cabal v1-build All the components in the package
  cabal v1-build foo A component (i.e. lib, exe, test suite) The flags --with-PROG and --PROG-option(s) can be used with the following programs:
  alex ar c2hs cpphs doctest gcc ghc ghc-pkg ghcjs ghcjs-pkg haddock happy hpc
  hsc2hs hscolour jhc ld pkg-config runghc strip tar uhc The v1-build command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --semaphore SEMAPHORE
        semaphore
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
cabal v1-repl Usage: cabal v1-repl [COMPONENT] [FLAGS] If the current directory contains no package, ignores COMPONENT parameters and opens an interactive interpreter session; Otherwise, (re)configures with the given or default flags, and loads the interpreter with the relevant modules. For executables, tests and benchmarks, loads the main module (and its dependencies); for libraries all exposed/other modules. The default component is the library itself, or the executable if that is the only component. Support for loading specific modules is planned but not implemented yet. For certain scenarios, `cabal v1-exec -- ghci :l Foo` may be used instead. Note that `v1-exec` will not (re)configure and you will have to specify the location of other modules, if required. Examples:
  cabal v1-repl The first component in the package
  cabal v1-repl foo A named component (i.e. lib, exe, test suite)
  cabal v1-repl --ghc-options="-lstdc++" Specifying flags for interpreter The v1-repl command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --reload
        Used from within an interpreter to update files.
    --repl-no-load
        Disable loading of project modules at REPL startup.
    --repl-options FLAG
        Use the option(s) for the repl
    --repl-multi-file DIR
        Write repl options to this directory rather than starting repl mode
    --with-repl PATH
        Give the path to a program to use for REPL
cabal v1-freeze Usage: cabal freeze [FLAGS] Calculates a valid set of dependencies and their exact versions. If successful, saves the result to the file `cabal.config`. The package versions specified in `cabal.config` will be used for any future installs. An existing `cabal.config` is ignored and overwritten. The v1-freeze command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --dry-run
        Do not freeze anything, only print what would be frozen
    --enable-tests
    --disable-tests
        freezing of the dependencies of any tests suites in the package description file.
    --enable-benchmarks
    --disable-benchmarks
        freezing of the dependencies of any benchmarks suites in the package description file.
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
cabal v1-haddock Usage: cabal v1-haddock [FLAGS]
   or: cabal v1-haddock COMPONENTS [FLAGS] Requires the program haddock, version 2.x. The v1-haddock command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --hoogle
        Generate a hoogle database
    --html
        Generate HTML documentation (the default)
    --html-location URL
        Location of HTML documentation for pre-requisite packages
    --for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --executables
        Run haddock for Executables targets
    --tests
        Run haddock for Test Suite targets
    --benchmarks
        Run haddock for Benchmark targets
    --foreign-libraries
        Run haddock for Foreign Library targets
    --all
        Run haddock for all targets
    --internal
        Run haddock for internal modules and include all symbols
    --css PATH
        Use PATH as the haddock stylesheet
    --hyperlink-source, --hyperlink-sources, --hyperlinked-source
        Hyperlink the documentation to the source code
    --quickjump
        Generate an index for interactive documentation navigation
    --hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --contents-location URL
        Bake URL in as the location for the contents page
    --index-location URL
        Use a separately-generated HTML index
    --base-url URL
        Base URL for static files.
    --resources-dir DIR
        location of Haddocks static / auxiliary files
    --output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --use-unicode
        Pass --use-unicode option to haddock
    --with-ghc PATH
        give the path to ghc
    --with-haddock PATH
        give the path to haddock
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
cabal v1-install Usage: cabal v1-install [FLAGS]
   or: cabal v1-install [FLAGS] PACKAGES Installs one or more packages. By default, the installed package will be registered in the user's package database. If PACKAGES are specified, downloads and installs those packages. Otherwise, install the package in the current directory (and/or its dependencies) (there must be exactly one .cabal file in the current directory). The flags to `v1-install` are saved and affect future commands such as `v1-build` and `v1-repl`. See the help for `v1-configure` for a list of commands being affected. Installed executables will by default be put into `~/.local/bin/`. If you want installed executable to be available globally, make sure that the PATH environment variable contains that directory. The flags --with-PROG and --PROG-option(s) can be used with the following programs:
  alex ar c2hs cpphs doctest gcc ghc ghc-pkg ghcjs ghcjs-pkg haddock happy hpc
  hsc2hs hscolour jhc ld pkg-config runghc strip tar uhc Examples:
  cabal v1-install Package in the current directory
  cabal v1-install foo Package from the hackage server
  cabal v1-install foo-1.0 Specific version of a package
  cabal v1-install 'foo < 2' Constrained package version
  cabal v1-install haddock --bindir=$HOME/hask-bin/ --datadir=$HOME/hask-data/
                        Change installation destination The v1-install command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)
    --enable-documentation
    --disable-documentation
        building of documentation
    --doc-index-file TEMPLATE
        A central index of haddock API documentation (template cannot use $pkgid)
    --dry-run
        Do not install anything, only print what would be installed.
    --only-download
        Do not build anything, only fetch the packages.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
    --reorder-goals
    --no-reorder-goals
        Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
    --count-conflicts
    --no-count-conflicts
        Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
    --fine-grained-conflicts
    --no-fine-grained-conflicts
        Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
    --minimize-conflict-set
    --no-minimize-conflict-set
        When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
    --independent-goals
    --no-independent-goals
        Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
    --prefer-oldest
    --no-prefer-oldest
        Prefer the oldest (instead of the latest) versions of packages available. Useful to determine lower bounds in the build-depends section.
    --shadow-installed-packages
    --no-shadow-installed-packages
        If multiple package instances of the same version are installed, treat all but one as shadowed.
    --strong-flags
    --no-strong-flags
        Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
    --allow-boot-library-installs
    --no-allow-boot-library-installs
        Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
    --reject-unconstrained-dependencies none|all
        Require these packages to have constraints on them if they are to be selected (default: none).
    --reinstall
    --no-reinstall
        Install even if it means installing the same version again.
    --avoid-reinstalls
    --no-avoid-reinstalls
        Do not select versions that would destructively overwrite installed packages.
    --force-reinstalls
    --no-force-reinstalls
        Reinstall packages even if they will most likely break other installed packages.
    --upgrade-dependencies
    --no-upgrade-dependencies
        Pick the latest version for all dependencies, rather than trying to pick an installed version.
    --only-dependencies
    --no-only-dependencies
        Install only the dependencies necessary to build the given packages
    --dependencies-only
    --no-dependencies-only
        A synonym for --only-dependencies
    --index-state STATE
        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').
    --root-cmd COMMAND
        (No longer supported, do not use.)
    --symlink-bindir DIR
        Add symlinks to installed executables into this directory.
    --build-summary TEMPLATE
        Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
    --build-log TEMPLATE
        Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
    --remote-build-reporting LEVEL
        Generate build reports to send to a remote server (none, anonymous or detailed).
    --report-planning-failure
        Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
    --enable-per-component
    --disable-per-component
        Per-component builds when possible
    --run-tests
        Run package test suites during installation.
    --semaphore
    --no-semaphore
        Use a semaphore so GHC can compile components in parallel
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --keep-going
        After a build failure, continue to build other unaffected packages.
    --offline
    --no-offline
        Don't download packages from the Internet.
    --only
        Only installs the package in the current directory.
    --haddock-hoogle
        Generate a hoogle database
    --haddock-html
        Generate HTML documentation (the default)
    --haddock-html-location URL
        Location of HTML documentation for pre-requisite packages
    --haddock-for-hackage
        Collection of flags to generate documentation suitable for upload to hackage
    --haddock-executables
        Run haddock for Executables targets
    --haddock-tests
        Run haddock for Test Suite targets
    --haddock-benchmarks
        Run haddock for Benchmark targets
    --haddock-all
        Run haddock for all targets
    --haddock-internal
        Run haddock for internal modules and include all symbols
    --haddock-css PATH
        Use PATH as the haddock stylesheet
    --haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source
        Hyperlink the documentation to the source code
    --haddock-quickjump
        Generate an index for interactive documentation navigation
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
    --haddock-base-url URL
        Base URL for static files.
    --haddock-resources-dir DIR
        location of Haddocks static / auxiliary files
    --haddock-output-dir DIR
        Generate haddock documentation into this directory. This flag is provided as a technology preview and is subject to change in the next releases.
    --haddock-use-unicode
        Pass --use-unicode option to haddock
    --test-log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --test-machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --test-show-details FILTER
    --test-keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --test-fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
cabal v1-run Usage: cabal v1-run [FLAGS] [EXECUTABLE] [-- EXECUTABLE_FLAGS] Builds and then runs the specified executable. If no executable is specified, but the package contains just one executable, that one is built and executed. Use `cabal v1-test --show-details=streaming` to run a test-suite and get its full output. Examples:
  cabal v1-run
    Run the only executable in the current package;
  cabal v1-run foo -- --fooflag
    Works similar to `./foo --fooflag`. The v1-run command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --semaphore SEMAPHORE
        semaphore
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
cabal v1-test Usage: cabal v1-test [FLAGS]
   or: cabal v1-test TESTCOMPONENTS [FLAGS] If necessary (re)configures with `--enable-tests` flag and builds the test suite. Remember that the tests' dependencies must be installed if there are additional ones; e.g. with `cabal v1-install --only-dependencies --enable-tests`. By defining UserHooks in a custom Setup.hs, the package can define actions to be executed before and after running tests. The v1-test command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --semaphore SEMAPHORE
        semaphore
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --log TEMPLATE
        Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
    --machine-log TEMPLATE
        Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
    --show-details FILTER
    --keep-tix-files
        keep .tix files for HPC between test runs
    --test-wrapper FILE
        Run test through a wrapper.
    --fail-when-no-test-suites
        Exit with failure when no test suites are found.
    --test-options TEMPLATES
        give extra options to test executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $test-suite)
cabal v1-bench Usage: cabal v1-bench [FLAGS]
   or: cabal v1-bench BENCHCOMPONENTS [FLAGS] If necessary (re)configures with `--enable-benchmarks` flag and builds the benchmarks. Remember that the benchmarks' dependencies must be installed if there are additional ones; e.g. with `cabal v1-install --only-dependencies --enable-benchmarks`. By defining UserHooks in a custom Setup.hs, the package can define actions to be executed before and after running benchmarks. The v1-bench command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --semaphore SEMAPHORE
        semaphore
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (split on spaces, use "" to prevent splitting; name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (passed directly as a single argument; name template can use $pkgid, $compiler, $os, $arch, $benchmark)
cabal v1-clean Usage: cabal v1-clean [FLAGS] Removes .hi, .o, preprocessed sources, etc. The v1-clean command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -s, --save-configure
        Do not remove the configuration file (dist/setup-config) during cleaning. Saves need to reconfigure.
cabal v1-copy Usage: cabal v1-copy [FLAGS]
   or: cabal v1-copy COMPONENTS [FLAGS] Components encompass executables and libraries. Does not call register, and allows a prefix at install time. Without the --destdir flag, configure determines location. Examples:
  cabal v1-copy All the components in the package
  cabal v1-copy foo A component (i.e. lib, exe, test suite) The v1-copy command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --destdir DIR
        directory to copy files to, prepended to installation directories
    --target-package-db DATABASE
        package database to copy files into. Required when using ${pkgroot} prefix.
cabal v1-register Usage: cabal v1-register [FLAGS] The v1-register command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    --user
        upon registration, register this package in the user's local package database
    --global
        (default)upon registration, register this package in the system-wide package database
    --inplace
        register the package in the build location, so it can be used without being installed
    --gen-script
        instead of registering, generate a script to register later
    --gen-pkg-config [PKG]
        instead of registering, generate a package registration file/directory
    --print-ipid
        print the installed package ID calculated for this package
cabal v1-reconfigure Usage: cabal v1-reconfigure [FLAGS] Run `configure` with the most recently used flags, or append FLAGS to the most recently used configuration. Accepts the same flags as `cabal v1-configure'. If the package has never been configured, the default flags are used. Examples:
  cabal v1-reconfigure
    Configure with the most recently used flags.
  cabal v1-reconfigure -w PATH
    Reconfigure with the most recently used flags,
    but use the compiler at PATH. The v1-reconfigure command is a part of the legacy v1 style of cabal usage. It is a legacy feature and will be removed in a future release of cabal-install. Please file a bug if you cannot replicate a working v1- use case with the nix-style commands. For more information, see: https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --builddir, --distdir, --distpref DIR
        The directory where Cabal puts generated build files (default dist)
    --cabal-file PATH
        use this Cabal file
    --keep-temp-files
        Keep temporary files.
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --uhc
        compile with UHC
    -w, --with-compiler PATH
        give the path to a particular compiler
    --with-hc-pkg PATH
        give the path to the package tool
    --prefix DIR
        bake this prefix in preparation of installation
    --bindir DIR
        installation directory for executables
    --libdir DIR
        installation directory for libraries
    --libsubdir DIR
        subdirectory of libdir in which libs are installed
    --dynlibdir DIR
        installation directory for dynamic libraries
    --libexecdir DIR
        installation directory for program executables
    --libexecsubdir DIR
        subdirectory of libexecdir in which private executables are installed
    --datadir DIR
        installation directory for read-only data
    --datasubdir DIR
        subdirectory of datadir in which data files are installed
    --docdir DIR
        installation directory for documentation
    --htmldir DIR
        installation directory for HTML documentation
    --haddockdir DIR
        installation directory for haddock interfaces
    --sysconfdir DIR
        installation directory for configuration files
    --program-prefix PREFIX
        prefix to be applied to installed executables
    --program-suffix SUFFIX
        suffix to be applied to installed executables
    --enable-library-vanilla
    --disable-library-vanilla
        Vanilla libraries
    -p, --enable-library-profiling
    --disable-library-profiling
        Library profiling
    --enable-shared
    --disable-shared
        Shared library
    --enable-static
    --disable-static
        Static library
    --enable-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-executable-static
    --disable-executable-static
        Executable fully static linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --enable-profiling-shared
    --disable-profiling-shared
        Build profiling shared libraries
    --enable-executable-profiling
    --disable-executable-profiling
        Executable profiling (DEPRECATED)
    --profiling-detail level
        Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions, all-functions, late).
    --library-profiling-detail level
        Profiling detail level for libraries only.
    -O, --enable-optimization, --enable-optimisation [n]
        Build with optimization (n is 0--2, default is 1)
    --disable-optimization, --disable-optimisation
        Build without optimization
    --enable-debug-info [n]
        Emit debug info (n is 0--3, default is 0)
    --disable-debug-info
        Don't emit debug info
    --enable-build-info
        Enable build information generation during project building
    --disable-build-info
        Disable build information generation during project building
    --enable-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --enable-split-sections
    --disable-split-sections
        compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
    --enable-split-objs
    --disable-split-objs
        split library into smaller objects to reduce binary sizes (GHC 6.6+)
    --enable-executable-stripping
    --disable-executable-stripping
        strip executables upon installation to reduce binary sizes
    --enable-library-stripping
    --disable-library-stripping
        strip libraries upon installation to reduce binary sizes
    --configure-option OPT
        Extra option for configure
    --user
    --global
        doing a per-user installation
    --package-db DB
        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.
    -f, --flags FLAGS
        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.
    --extra-include-dirs PATH
        A list of directories to search for header files
    --enable-deterministic
    --disable-deterministic
        Try to be as deterministic as possible (used by the test suite)
    --ipid IPID
        Installed package ID to compile this package as
    --cid CID
        Installed component ID to compile this component as
    --extra-lib-dirs PATH
        A list of directories to search for external libraries
    --extra-lib-dirs-static PATH
        A list of directories to search for external libraries when linking fully static executables
    --extra-framework-dirs PATH
        A list of directories to search for external frameworks (OS X only)
    --extra-prog-path PATH
        A list of directories to search for required programs (in addition to the normal search locations)
    --instantiate-with NAME=MOD
        A mapping of signature names to concrete module instantiations.
    --enable-tests
    --disable-tests
        dependency checking and compilation for test suites listed in the package description file.
    --enable-coverage
    --disable-coverage
        build package with Haskell Program Coverage. (GHC only)
    --enable-library-coverage
    --disable-library-coverage
        build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
    --enable-benchmarks
    --disable-benchmarks
        dependency checking and compilation for benchmarks listed in the package description file.
    --enable-relocatable
    --disable-relocatable
        building a package that is relocatable. (GHC only)
    --disable-response-files
        enable workaround for old versions of programs like "ar" that do not support @file arguments
    --allow-depending-on-private-libs
        Allow depending on private libraries. If set, the library visibility check MUST be done externally.
    --coverage-for UNITID
        A list of unit-ids of libraries to include in the Haskell Program Coverage report.
    --ignore-build-tools
        Ignore build tool dependencies. If set, declared build tools needn't be found for compilation to proceed.
    --with-alex PATH
        give the path to alex
    --with-ar PATH
        give the path to ar
    --with-c2hs PATH
        give the path to c2hs
    --with-cpphs PATH
        give the path to cpphs
    --with-doctest PATH
        give the path to doctest
    --with-gcc PATH
        give the path to gcc
    --with-ghc PATH
        give the path to ghc
    --with-ghc-pkg PATH
        give the path to ghc-pkg
    --with-ghcjs PATH
        give the path to ghcjs
    --with-ghcjs-pkg PATH
        give the path to ghcjs-pkg
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-hpc PATH
        give the path to hpc
    --with-hsc2hs PATH
        give the path to hsc2hs
    --with-hscolour PATH
        give the path to hscolour
    --with-jhc PATH
        give the path to jhc
    --with-ld PATH
        give the path to ld
    --with-pkg-config PATH
        give the path to pkg-config
    --with-runghc PATH
        give the path to runghc
    --with-strip PATH
        give the path to strip
    --with-tar PATH
        give the path to tar
    --with-uhc PATH
        give the path to uhc
    --alex-option OPT
        give an extra option to alex (passed directly to alex as a single argument)
    --ar-option OPT
        give an extra option to ar (passed directly to ar as a single argument)
    --c2hs-option OPT
        give an extra option to c2hs (passed directly to c2hs as a single argument)
    --cpphs-option OPT
        give an extra option to cpphs (passed directly to cpphs as a single argument)
    --doctest-option OPT
        give an extra option to doctest (passed directly to doctest as a single argument)
    --gcc-option OPT
        give an extra option to gcc (passed directly to gcc as a single argument)
    --ghc-option OPT
        give an extra option to ghc (passed directly to ghc as a single argument)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (passed directly to ghc-pkg as a single argument)
    --ghcjs-option OPT
        give an extra option to ghcjs (passed directly to ghcjs as a single argument)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (passed directly to ghcjs-pkg as a single argument)
    --haddock-option OPT
        give an extra option to haddock (passed directly to haddock as a single argument)
    --happy-option OPT
        give an extra option to happy (passed directly to happy as a single argument)
    --hpc-option OPT
        give an extra option to hpc (passed directly to hpc as a single argument)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (passed directly to hsc2hs as a single argument)
    --hscolour-option OPT
        give an extra option to hscolour (passed directly to hscolour as a single argument)
    --jhc-option OPT
        give an extra option to jhc (passed directly to jhc as a single argument)
    --ld-option OPT
        give an extra option to ld (passed directly to ld as a single argument)
    --pkg-config-option OPT
        give an extra option to pkg-config (passed directly to pkg-config as a single argument)
    --runghc-option OPT
        give an extra option to runghc (passed directly to runghc as a single argument)
    --strip-option OPT
        give an extra option to strip (passed directly to strip as a single argument)
    --tar-option OPT
        give an extra option to tar (passed directly to tar as a single argument)
    --uhc-option OPT
        give an extra option to uhc (passed directly to uhc as a single argument)
    --alex-options OPTS
        give extra options to alex (split on spaces, use "" to prevent splitting)
    --ar-options OPTS
        give extra options to ar (split on spaces, use "" to prevent splitting)
    --c2hs-options OPTS
        give extra options to c2hs (split on spaces, use "" to prevent splitting)
    --cpphs-options OPTS
        give extra options to cpphs (split on spaces, use "" to prevent splitting)
    --doctest-options OPTS
        give extra options to doctest (split on spaces, use "" to prevent splitting)
    --gcc-options OPTS
        give extra options to gcc (split on spaces, use "" to prevent splitting)
    --ghc-options OPTS
        give extra options to ghc (split on spaces, use "" to prevent splitting)
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg (split on spaces, use "" to prevent splitting)
    --ghcjs-options OPTS
        give extra options to ghcjs (split on spaces, use "" to prevent splitting)
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg (split on spaces, use "" to prevent splitting)
    --haddock-options OPTS
        give extra options to haddock (split on spaces, use "" to prevent splitting)
    --happy-options OPTS
        give extra options to happy (split on spaces, use "" to prevent splitting)
    --hpc-options OPTS
        give extra options to hpc (split on spaces, use "" to prevent splitting)
    --hsc2hs-options OPTS
        give extra options to hsc2hs (split on spaces, use "" to prevent splitting)
    --hscolour-options OPTS
        give extra options to hscolour (split on spaces, use "" to prevent splitting)
    --jhc-options OPTS
        give extra options to jhc (split on spaces, use "" to prevent splitting)
    --ld-options OPTS
        give extra options to ld (split on spaces, use "" to prevent splitting)
    --pkg-config-options OPTS
        give extra options to pkg-config (split on spaces, use "" to prevent splitting)
    --runghc-options OPTS
        give extra options to runghc (split on spaces, use "" to prevent splitting)
    --strip-options OPTS
        give extra options to strip (split on spaces, use "" to prevent splitting)
    --tar-options OPTS
        give extra options to tar (split on spaces, use "" to prevent splitting)
    --uhc-options OPTS
        give extra options to uhc (split on spaces, use "" to prevent splitting)
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --enable-append
    --disable-append
        appending the new config to the old config file
    --enable-backup
    --disable-backup
        the backup of the config file before any alterations
    -c, --constraint CONSTRAINT
        Specify constraints on a package (version, installed/source, flags)
    --preference CONSTRAINT
        Specify preferences (soft constraints) on the version of a package
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --allow-older [DEPS]
        Ignore lower bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --write-ghc-environment-files always|never|ghc8.4.4+
        Whether to create a .ghc.environment file after a successful build (v2-build only)

FILES
~/.config/cabal/config
    The defaults that can be overridden with command-line options.

BUGS
To browse the list of known issues or report a new one please see https://github.com/haskell/cabal/labels/cabal-install.