Skip to content


The following terms are used in Stack's documentation.

Term Meaning
Cabal The Haskell Common Architecture for Building Applications and Libraries, provided by the Cabal package. Also referred to as Cabal (the library) to distinguish it from Cabal (the tool).
Cabal file A file containing a package description used by Cabal, named <package_name>.cabal.
Cabal (the tool) The Haskell build tool provided by the cabal-install package.
CI Continuous integration.
CMake A system for managing build processes.
config.yaml A global and non-project-specific configuration file used by Stack.
Docker A platform for developing, shipping, and running applications. It can package and run an application in a loosely isolated environment called a container.
Emacs GNU Emacs, an extensible, customisable text editor.
extra-deps Packages in addition to those in a snapshot, named after a key used in stack.yaml files.
FreeBSD A Unix-like operating system.
GCC The GNU Compiler Collection or its executable gcc.
GHC The Glasgow Haskell Compiler.
GHC boot package A package that comes with GHC, is included in GHC's global package database, and is not included in a Stackage snapshot. See the output of command stack exec -- ghc-pkg list --global.
GHCi GHC's interactive environment.
GHCJS A Haskell to JavaScript compiler.
GHCup An installer for Haskell.
Git A distributed version control system.
GPG The GNU Privacy Guard or GnuPG, software that allows you to encrypt or sign your data and communications.
Hackage The Haskell Package Repository.
Haddock The document generation tool for Haskell libraries.
'Haskell' extension The 'Haskell' extension for VS Code.
HLS Haskell Language Server, an implementation of the Language Server Protocol for Haskell.
Homebrew A package manager for macOS or Linux, or its executable brew.
Hoogle A Haskell API search engine.
Hpack A format for Haskell packages or the executable hpack that produces a Cabal file from package.yaml.
Linux A family of operating systems based on the Linux kernel.
macOS The primary operating system for Apple's Mac computers. Previously known as Mac OS X or OS X.
Make A build automation tool.
MSYS2 The MSYS2 software distribution and building platform for Windows.
Nix A purely functional package manager, available for Linux and macOS.
package.yaml A file that describes a package in the Hpack format.
Pantry A library for content-addressable Haskell package management, provided by the pantry package. A dependency of Stack.
PATH The PATH environment variable, specifying a list of directories searched for executable files.
PVP The Haskell Package Versioning Policy, which tells developers of libraries how to set their version numbers.
REPL An interactive (run-eval-print loop) programming environment.
resolver A synonym for snapshot.
Setup.hs A project-specific file used by Cabal to perform setup tasks.
snapshot A snapshot defines a GHC version, a set of packages, and build flags or other settings.
Stack The Haskell Tool Stack project or its executable stack.
stack.yaml A project-level configuration file used by Stack, which may also contain non-project-specific options.
Stackage A distribution of compatible Haskell packages.
Stack root A directory in which Stack stores important files. See stack path --stack-root. On Windows, or if Stack is configured to use the XDG Base Directory Specification, Stack also stores important files outside of the Stack root.
Stack work directory A directory within a local project or package directory in which Stack stores files created during the build process. Named .stack-work, by default.
Unix-like operating systems Linux, FreeBSD and macOS.
VS Code Visual Studio Code, a source code editor.
Windows A group of operating systems developed by Microsoft.
WSL Windows Subsystem for Linux. Provides a Linux environment on Windows.
XDG Base Directory Specification A specification of directories relative to which files should be located.
YAML A human-friendly data serialization language.