appendix A The Haskell Toolchain
Like any modern language, Haskell comes with a variety of tools. Here is a short overview of the essentials:
- GHC—The Glasgow Haskell Compiler, the standard compiler for the Haskell language.
- GHCi—GHC’s interactive environment. It can be used to tinker with functions, test out certain code snippets, and get some information on types and definitions.
- Cabal—A tool for building Haskell applications. It can be used for downloading dependencies, compiling programs, and even bundling code into packages. It uses Hackage, the Haskell package repository, as a source for dependencies and GHC for compiling.
- Stack—A tool for organizing projects and resolving their dependencies with a high guarantee for build success. In normal use, it replaces the need to interact with cabal. It uses Hackage, Cabal, GHC, and the Stackage package collection, which consists of curated Hackage packages tested for compatibility.
- HLS—The Haskell language server. It can be used in conjunction with editors and IDEs to provide real-time information on types, compiler errors, and warnings.
Some other tools are also useful: