Stack is a build tool, package manager, and project bootstrapper for the Haskell language. It provides a consistent environment for compiling source code, managing project binaries, and executing programs.
The system ensures reproducible builds through snapshot-based dependency resolution and manages the installation of specific compiler binaries to match project requirements. It utilizes content-addressable package storage and local-path caching to maintain the integrity of source code and avoid redundant downloads across different projects.
The toolset covers the full development lifecycle, including project initialization via standardized templates, the compilation of applications and libraries, and the installation of executable packages. It also provides an interactive read-eval-print loop for real-time code testing and state exploration.