Stack is not the only tool available for building Haskell code. If you are happy building Haskell code with other tools, you may not need Stack. If you're experiencing problems with other tools, give Stack a try.
If you're a new user who has no experience with other tools, we recommend Stack. It aims to be easy to use and its defaults match modern best practices in Haskell development.
Other key features of Stack include:
-
Sandboxing
A 'sandbox' is a development environment that is isolated from other parts of the system. The concept of sandboxing is built in to Stack.
-
Snapshots
A snapshot specifies a GHC versions and a set of package versions that work well together. Stack uses snapshots to define precisely the set of package versions available for a project.
-
Reproducibility
Stack goes to great lengths to ensure that
stack build
today does the same thing tomorrow. Changing the build plan is always an explicit decision. -
Building dependencies
Stack automatically builds dependencies.