CABAL(1)

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

SYNOPSIS
cabal command <arguments|[options]>... Where the commands are cabal install - Install packages.
cabal update - Updates list of known packages.
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 freeze - Freeze dependencies.
cabal get - Download/Extract a package's source code (repository).
cabal check - Check the package for common mistakes.
cabal sdist - Generate a source distribution file (.tar.gz).
cabal upload - Uploads source packages or documentation to Hackage.
cabal report - Upload build reports to a remote server.
cabal run - Builds and runs an executable.
cabal init - Create a new .cabal package file (interactively).
cabal configure - Prepare to build the package.
cabal reconfigure - Reconfigure the package if necessary.
cabal build - Compile all/specific components.
cabal repl - Open an interpreter session for the given component.
cabal sandbox - Create/modify/delete a sandbox.
cabal doctest - Run doctest tests.
cabal haddock - Generate Haddock HTML documentation.
cabal exec - Give a command access to the sandbox package repository.
cabal user-config - Display and update the user's global cabal configuration.
cabal clean - Clean up after a build.
cabal gen-bounds - Generate dependency bounds.
cabal outdated - Check for outdated dependencies
cabal copy - Copy the files of all/specific components to install locations.
cabal hscolour - Generate HsColour colourised code, in HTML format.
cabal register - Register this package with the compiler.
cabal test - Run all/specific tests in the test suite.
cabal bench - Run all/specific benchmarks.
cabal new-configure - Add extra project configuration
cabal new-build - Compile targets within the project.
cabal new-repl - Open an interactive session for the given component.
cabal new-freeze - Freeze dependencies.
cabal new-haddock - Build Haddock documentation
cabal new-run - Run an executable.
cabal new-test - Run test-suites
cabal new-bench - Run benchmarks

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
--sandbox-config-file FILE
    Set an alternate location for the sandbox config file (default: './cabal.sandbox.config')
--default-user-config FILE
    Set a location for a cabal.config file for projects without their own cabal.config freeze file.
--require-sandbox
--no-require-sandbox
    requiring the presence of a sandbox for sandbox-aware commands
--ignore-sandbox
    Ignore any existing sandbox
--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')
--enable-nix
--disable-nix
    Nix integration: run commands through nix-shell if a 'shell.nix' file exists
--remote-repo NAME:URL
    The name and url for a remote repository
--remote-repo-cache DIR
    The location where downloads from all remote repos are cached
--local-repo DIR
    The location of a local repository
--logs-dir DIR
    The location to put log files
--world-file FILE
    The location of the world file
--store-dir DIR
    The location of the nix-local-build store

COMMANDS
cabal install Usage: cabal install [FLAGS]
   or: cabal install [FLAGS] PACKAGES Installs one or more packages. By default, the installed package will be registered in the user's package database or, if a sandbox is present in the current directory, inside the sandbox. 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). When using a sandbox, the flags for `install` only affect the current command and have no effect on future commands. (To achieve that, `configure` must be used.) In contrast, without a sandbox, the flags to `install` are saved and affect future commands such as `build` and `repl`. See the help for `configure` for a list of commands being affected. Installed executables will by default (and without a sandbox) be put into `~/.cabal/bin/`. If you want installed executable to be available globally, make sure that the PATH environment variable contains that directory. When using a sandbox, executables will be put into `$SANDBOX/bin/` (by default: `./.cabal-sandbox/bin/`). When specifying --bindir, consider also specifying --datadir; this way the sandbox can be deleted and the executable should continue working as long as bindir and datadir are left untouched. 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 greencard haddock
  happy haskell-suite haskell-suite-pkg hmake hpc hsc2hs hscolour jhc ld lhc
  lhc-pkg pkg-config runghc strip tar uhc Examples:
  cabal install Package in the current directory
  cabal install foo Package from the hackage server
  cabal install foo-1.0 Specific version of a package
  cabal install 'foo < 2' Constrained package version
  cabal install haddock --bindir=$HOME/hask-bin/ --datadir=$HOME/hask-data/
                        Change installation destination 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
cabal update Usage: cabal update [FLAGS] For all known remote repositories, download the package list. Relevant global configuration keys:
  remote-repo
  remote-repo-cache
  local-repo Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
cabal list Usage: cabal list [FLAGS]
   or: cabal list [FLAGS] STRINGS List all packages, or all packages matching one of the search strings. If there is a sandbox in the current directory and config:ignore-sandbox is False, use the sandbox package database. Otherwise, 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
    --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.
cabal info Usage: cabal info [FLAGS] PACKAGES If there is a sandbox in the current directory and config:ignore-sandbox is False, use the sandbox package database. Otherwise, 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'], or ['global', $sandbox], 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.
    --solver SOLVER
        Select dependency solver to use (default: modular). Choices: modular.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
cabal 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. 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: 2000). 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).
    --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.
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 (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).
    --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 Expects a .cabal package file in the current directory. The checks correspond to the requirements to packages on Hackage. If no errors and warnings are reported, Hackage will accept this package. Flags:
cabal sdist Usage: cabal sdist [FLAGS] 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)
    --list-sources FILE
        Just write a list of the package's sources to a file
    --snapshot
        Produce a snapshot source distribution
    --output-directory DIR
        Generate a source distribution in the given directory, without creating a tarball
    --targz
        Produce a '.tar.gz' format archive (default and required for uploading to hackage)
    --zip
        Produce a '.zip' format archive
cabal upload Usage: cabal upload [FLAGS] TARFILES You can store your Hackage login in the ~/.cabal/config file Relevant global configuration keys:
  username
  password 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.
    -u, --username USERNAME
        Hackage username.
    -p, --password PASSWORD
        Hackage password.
    -P, --password-command PASSWORD
        Command to get Hackage password.
cabal report Usage: cabal report [FLAGS] You can store your Hackage login in the ~/.cabal/config file Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    -u, --username USERNAME
        Hackage username.
    -p, --password PASSWORD
        Hackage password.
cabal run Usage: cabal 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 test --show-details=streaming` to run a test-suite and get its full output. Examples:
  cabal run
    Run the only executable in the current package;
  cabal run foo -- --fooflag
    Works similar to `./foo --fooflag`. 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)
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --only
        Don't reinstall add-source dependencies (sandbox-only)
cabal init Usage: cabal init [FLAGS] Cabalise a project by creating a .cabal, Setup.hs, and optionally a LICENSE file. Calling init with no arguments (recommended) uses an interactive mode, which will try to guess as much as possible and prompt you for the rest. Command-line arguments are provided for scripting purposes. If you don't want interactive mode, be sure to pass the -n flag. Flags:
    -n, --non-interactive
        Non-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 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 VERSION_RANGE
        Required version of the Cabal library.
    -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.
    --is-library
        Build a library.
    --is-executable
        Build an executable.
    --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 PACKAGE
        Package dependency.
    --source-dir DIR
        Directory containing package source.
    --build-tool TOOL
        Required external build tool.
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
cabal configure Usage: cabal configure [FLAGS] Configure how the package is built by setting package (and other) flags. The configuration affects several other commands, including build, test, bench, run, 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 greencard haddock
  happy haskell-suite haskell-suite-pkg hmake hpc hsc2hs hscolour jhc ld lhc
  lhc-pkg pkg-config runghc strip tar uhc Examples:
  cabal configure
    Configure with defaults;
  cabal configure --enable-tests -fcustomflag
    Configure building package including tests,
    with some package-specific flag. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
cabal reconfigure Usage: cabal 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 configure'. If the package has never been configured, the default flags are used. Examples:
  cabal reconfigure
    Configure with the most recently used flags.
  cabal reconfigure -w PATH
    Reconfigure with the most recently used flags,
    but use the compiler at PATH. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
cabal build Usage: cabal build [FLAGS]
   or: cabal build COMPONENTS [FLAGS] Components encompass executables, tests, and benchmarks. Affected by configuration options, see `configure`. Examples:
  cabal build All the components in the package
  cabal 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 greencard haddock
  happy haskell-suite haskell-suite-pkg hmake hpc hsc2hs hscolour jhc ld lhc
  lhc-pkg pkg-config runghc strip tar uhc 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)
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --only
        Don't reinstall add-source dependencies (sandbox-only)
cabal repl Usage: cabal repl [COMPONENT] [FLAGS] If the current directory contains no package, ignores COMPONENT parameters and opens an interactive interpreter session; if a sandbox is present, its package database will be used. 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 exec -- ghci :l Foo` may be used instead. Note that `exec` will not (re)configure and you will have to specify the location of other modules, if required. Examples:
  cabal repl The first component in the package
  cabal repl foo A named component (i.e. lib, exe, test suite)
  cabal repl --ghc-options="-lstdc++" Specifying flags for interpreter 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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --reload
        Used from within an interpreter to update files.
    --only
        Don't reinstall add-source dependencies (sandbox-only)
cabal sandbox Usage: cabal sandbox init [FLAGS]
   or: cabal sandbox delete [FLAGS]
   or: cabal sandbox add-source [FLAGS] PATHS
   or: cabal sandbox delete-source [FLAGS] PATHS
   or: cabal sandbox list-sources [FLAGS]
   or: cabal sandbox hc-pkg [FLAGS] [--] COMMAND [--] [ARGS] Sandboxes are isolated package databases that can be used to prevent dependency conflicts that arise when many different packages are installed in the same database (i.e. the user's database in the home directory). A sandbox in the current directory (created by `sandbox init`) will be used instead of the user's database for commands such as `install` and `build`. Note that (a directly invoked) GHC will not automatically be aware of sandboxes; only if called via appropriate cabal commands, e.g. `repl`, `build`, `exec`. Currently, cabal will not search for a sandbox in folders above the current one, so cabal will not see the sandbox if you are in a subfolder of a sandbox. Subcommands: init:
  Initialize a sandbox in the current directory. An existing package database
  will not be modified, but settings (such as the location of the database)
  can be modified this way. delete:
  Remove the sandbox; deleting all the packages installed inside. add-source:
  Make one or more local packages available in the sandbox. PATHS may be
  relative or absolute. Typical usecase is when you need to make a (temporary)
  modification to a dependency: You download the package into a different
  directory, make the modification, and add that directory to the sandbox with
  `add-source`.
  Unless given `--snapshot`, any add-source'd dependency that was modified
  since the last build will be re-installed automatically. delete-source:
  Remove an add-source dependency; however, this will not delete the
  package(s) that have been installed in the sandbox from this dependency. You
  can either unregister the package(s) via `cabal sandbox hc-pkg unregister`
  or re-create the sandbox (`sandbox delete; sandbox init`). list-sources:
  List the directories of local packages made available via `cabal
  add-source`. hc-pkg:
  Similar to `ghc-pkg`, but for the sandbox package database. Can be used to
  list specific/all packages that are installed in the sandbox. For
  subcommands, see the help for ghc-pkg. Affected by the compiler version
  specified by `configure`. Relevant global configuration keys:
  require-sandbox
  ignore-sandbox Examples:
  Set up a sandbox with one local dependency, located at ../foo:
    cabal sandbox init
    cabal sandbox add-source ../foo
    cabal install --only-dependencies
  Reset the sandbox:
    cabal sandbox delete
    cabal sandbox init
    cabal install --only-dependencies
  List the packages in the sandbox:
    cabal sandbox hc-pkg list
  Unregister the `broken` package from the sandbox:
    cabal sandbox hc-pkg -- --force unregister broken Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
    --snapshot
        Take a snapshot instead of creating a link (only applies to 'add-source')
    --sandbox DIR
        Sandbox location (default: './.cabal-sandbox').
cabal doctest Usage: cabal doctest [FLAGS] Requires the program doctest, version 0.12. 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)
    --with-doctest PATH
        give the path to doctest
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --doctest-options OPTS
        give extra options to doctest
cabal haddock Usage: cabal haddock [FLAGS] Requires the program haddock, version 2.x. 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
    --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
        Hyperlink the documentation to the source code (using HsColour)
    --hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --contents-location URL
        Bake URL in as the location for the contents page
    --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 (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --ghc-options OPTS
        give extra options to ghc
    --haddock-options OPTS
        give extra options to haddock
cabal exec Usage: cabal exec [FLAGS] [--] COMMAND [--] [ARGS] A directly invoked GHC will not automatically be aware of any sandboxes: the GHC_PACKAGE_PATH environment variable controls what GHC uses. `cabal exec` can be used to modify this variable: COMMAND will be executed in a modified environment and thereby uses the sandbox package database. If there is no sandbox, behaves as identity (executing COMMAND). Note that other cabal commands change the environment variable appropriately already, so there is no need to wrap those in `cabal exec`. But with `cabal exec`, the user has more control and can, for example, execute custom scripts which indirectly execute GHC. Note that `cabal repl` is different from `cabal exec -- ghci` as the latter will not forward any additional flags being defined in the local package to ghci. See `cabal sandbox`. Examples:
  cabal exec -- ghci -Wall
    Start a repl session with sandbox packages and all warnings;
  cabal exec gitit -- -f gitit.cnf
    Give gitit access to the sandbox packages, and pass it a flag;
  cabal exec runghc Foo.hs
    Execute runghc on Foo.hs with runghc configured to use the
    sandbox package database (if a sandbox is being 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)
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 ~/.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 ~/.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 ~/.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 ~/.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.
cabal clean Usage: cabal clean [FLAGS] Removes .hi, .o, preprocessed sources, etc. 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)
    -s, --save-configure
        Do not remove the configuration file (dist/setup-config) during cleaning. Saves need to reconfigure.
cabal 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 Flags:
    -v, --verbose [n]
        Control verbosity (n is 0--3, default verbosity level is 1)
cabal outdated Usage: cabal outdated [FLAGS] 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)
    --freeze-file
        Act on the freeze file
    --new-freeze-file
        Act on the new-style freeze file
    --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 copy Usage: cabal copy [FLAGS]
   or: cabal 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 build All the components in the package
  cabal build foo A component (i.e. lib, exe, test suite) 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)
    --destdir DIR
        directory to copy files to, prepended to installation directories
cabal hscolour Usage: cabal hscolour [FLAGS] Requires the hscolour program. 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)
    --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 register Usage: cabal register [FLAGS] 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)
    --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 test Usage: cabal test [FLAGS]
   or: cabal 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 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. 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)
    --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-options TEMPLATES
        give extra options to test executables (name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
    --test-option TEMPLATE
        give extra option to test executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $test-suite)
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --only
        Don't reinstall add-source dependencies (sandbox-only)
cabal bench Usage: cabal bench [FLAGS]
   or: cabal 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 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. 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)
    --benchmark-options TEMPLATES
        give extra options to benchmark executables (name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
    --benchmark-option TEMPLATE
        give extra option to benchmark executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $benchmark)
    -j, --jobs [NUM]
        Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --only
        Don't reinstall add-source dependencies (sandbox-only)
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 configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'new-build', 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 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 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 and check the overall
    project configuration works. Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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) Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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' Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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 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 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 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 Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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 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', Examples:
  cabal new-haddock pkgname Build documentation for the package named pkgname Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
cabal new-run Usage: cabal new-run [TARGET] [FLAGS] [-- EXECUTABLE_FLAGS] Runs the specified executable, first ensuring it is up to date. Any executable in any package in the project can be specified. A package can be specified if contains just one executable. The default is to use the package in the current directory if it contains just one executable. 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 in the package in the current directory
  cabal new-run foo-tool
    Run the named executable (in any package in the project)
  cabal new-run pkgfoo:foo-tool
    Run the executable 'foo-tool' in the package 'pkgfoo'
  cabal new-run foo -O2 -- dothing --fooflag
    Build with '-O2' and run the program, passing it extra arguments. Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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. 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) Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page
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) Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated. 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)
    -g, --ghc
        compile with GHC
    --ghcjs
        compile with GHCJS
    --jhc
        compile with JHC
    --lhc
        compile with LHC
    --uhc
        compile with UHC
    --haskell-suite
        compile with a haskell-suite compiler
    --cabal-file PATH
        use this Cabal file
    -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-executable-dynamic
    --disable-executable-dynamic
        Executable dynamic linking
    --enable-profiling
    --disable-profiling
        Executable and library profiling
    --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).
    --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-library-for-ghci
    --disable-library-for-ghci
        compile library for use with GHCi
    --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-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)
    --allow-older [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --allow-newer [DEPS]
        Ignore upper bounds in all dependencies or DEPS
    --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)
    --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-greencard PATH
        give the path to greencard
    --with-haddock PATH
        give the path to haddock
    --with-happy PATH
        give the path to happy
    --with-haskell-suite PATH
        give the path to haskell-suite
    --with-haskell-suite-pkg PATH
        give the path to haskell-suite-pkg
    --with-hmake PATH
        give the path to hmake
    --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-lhc PATH
        give the path to lhc
    --with-lhc-pkg PATH
        give the path to lhc-pkg
    --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 (no need to quote options containing spaces)
    --ar-option OPT
        give an extra option to ar (no need to quote options containing spaces)
    --c2hs-option OPT
        give an extra option to c2hs (no need to quote options containing spaces)
    --cpphs-option OPT
        give an extra option to cpphs (no need to quote options containing spaces)
    --doctest-option OPT
        give an extra option to doctest (no need to quote options containing spaces)
    --gcc-option OPT
        give an extra option to gcc (no need to quote options containing spaces)
    --ghc-option OPT
        give an extra option to ghc (no need to quote options containing spaces)
    --ghc-pkg-option OPT
        give an extra option to ghc-pkg (no need to quote options containing spaces)
    --ghcjs-option OPT
        give an extra option to ghcjs (no need to quote options containing spaces)
    --ghcjs-pkg-option OPT
        give an extra option to ghcjs-pkg (no need to quote options containing spaces)
    --greencard-option OPT
        give an extra option to greencard (no need to quote options containing spaces)
    --haddock-option OPT
        give an extra option to haddock (no need to quote options containing spaces)
    --happy-option OPT
        give an extra option to happy (no need to quote options containing spaces)
    --haskell-suite-option OPT
        give an extra option to haskell-suite (no need to quote options containing spaces)
    --haskell-suite-pkg-option OPT
        give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
    --hmake-option OPT
        give an extra option to hmake (no need to quote options containing spaces)
    --hpc-option OPT
        give an extra option to hpc (no need to quote options containing spaces)
    --hsc2hs-option OPT
        give an extra option to hsc2hs (no need to quote options containing spaces)
    --hscolour-option OPT
        give an extra option to hscolour (no need to quote options containing spaces)
    --jhc-option OPT
        give an extra option to jhc (no need to quote options containing spaces)
    --ld-option OPT
        give an extra option to ld (no need to quote options containing spaces)
    --lhc-option OPT
        give an extra option to lhc (no need to quote options containing spaces)
    --lhc-pkg-option OPT
        give an extra option to lhc-pkg (no need to quote options containing spaces)
    --pkg-config-option OPT
        give an extra option to pkg-config (no need to quote options containing spaces)
    --runghc-option OPT
        give an extra option to runghc (no need to quote options containing spaces)
    --strip-option OPT
        give an extra option to strip (no need to quote options containing spaces)
    --tar-option OPT
        give an extra option to tar (no need to quote options containing spaces)
    --uhc-option OPT
        give an extra option to uhc (no need to quote options containing spaces)
    --alex-options OPTS
        give extra options to alex
    --ar-options OPTS
        give extra options to ar
    --c2hs-options OPTS
        give extra options to c2hs
    --cpphs-options OPTS
        give extra options to cpphs
    --doctest-options OPTS
        give extra options to doctest
    --gcc-options OPTS
        give extra options to gcc
    --ghc-options OPTS
        give extra options to ghc
    --ghc-pkg-options OPTS
        give extra options to ghc-pkg
    --ghcjs-options OPTS
        give extra options to ghcjs
    --ghcjs-pkg-options OPTS
        give extra options to ghcjs-pkg
    --greencard-options OPTS
        give extra options to greencard
    --haddock-options OPTS
        give extra options to haddock
    --happy-options OPTS
        give extra options to happy
    --haskell-suite-options OPTS
        give extra options to haskell-suite
    --haskell-suite-pkg-options OPTS
        give extra options to haskell-suite-pkg
    --hmake-options OPTS
        give extra options to hmake
    --hpc-options OPTS
        give extra options to hpc
    --hsc2hs-options OPTS
        give extra options to hsc2hs
    --hscolour-options OPTS
        give extra options to hscolour
    --jhc-options OPTS
        give extra options to jhc
    --ld-options OPTS
        give extra options to ld
    --lhc-options OPTS
        give extra options to lhc
    --lhc-pkg-options OPTS
        give extra options to lhc-pkg
    --pkg-config-options OPTS
        give extra options to pkg-config
    --runghc-options OPTS
        give extra options to runghc
    --strip-options OPTS
        give extra options to strip
    --tar-options OPTS
        give extra options to tar
    --uhc-options OPTS
        give extra options to uhc
    --cabal-lib-version VERSION
        Select which version of the Cabal lib to use to build packages (useful for testing).
    --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.
    --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.
    --max-backjumps NUM
        Maximum number of backjumps allowed while solving (default: 2000). 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).
    --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.
    --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
    --one-shot
    --no-one-shot
        Do not record the packages in the world file.
    --run-tests
        Run package test suites during installation.
    -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.
    --project-file FILE
        Set the name of the cabal.project file to search for in parent directories
    --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-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
        Hyperlink the documentation to the source code (using HsColour)
    --haddock-hscolour-css PATH
        Use PATH as the HsColour stylesheet
    --haddock-contents-location URL
        Bake URL in as the location for the contents page

FILES
~/.cabal/config
    The defaults that can be overridden with command-line options.
~/.cabal/world
    A list of all packages whose installation has been explicitly requested.

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