Stack (Haskell)

From Wikipedia, the free encyclopedia
Initial releaseJune 23, 2015; 7 years ago (2015-06-23) [1]
Stable release
2.7.1 [2] / May 8, 2021; 20 months ago (2021-05-08)
Written inHaskell
Operating systemAny Unix-like, Microsoft Windows
Size60 megabytes
Available inEnglish

Stack is a tool to build Haskell projects and manage their dependencies. It uses the Cabal library but with a curated version of the Hackage repository called Stackage.[3][4]

Stack competes against Cabal's binary cabal-install[5] and has been created as a result of the overall criticism about dependency problems.[6] It does not, however, provide its own package format, but uses existing *.cabal files and complements projects with an additional stack.yaml file.


  1. ^ "stack 0.1 released". FP Complete. Retrieved 13 January 2016.
  2. ^ "Release v2.7.1". GitHub repository commercialhaskell/stack. Retrieved 11 Jun 2021.
  3. ^ "Stackage Server". FP Complete. Retrieved 13 January 2016.
  4. ^ "Haskell Communities and Activities Report Thirty Second Edition — May 2017" (PDF). Mihai Maruseac. Retrieved 2017-08-10.
  5. ^ "Why is stack not cabal?". Retrieved 27 January 2016. This blog post is intended to answer two very frequest [sic] questions about stack: how is it different from Cabal? And: Why was it developed as a separate project instead of being worked on with Cabal?
  6. ^ "What do Haskellers want? Over a thousand tell us". Retrieved 13 January 2016. Package management with cabal is the single worst aspect of using Haskell. Asked if improvements to package management would make a difference to their future choice of Haskell for a project, 38% said it would be "crucial" and a further 29% said it would be "important". Comments connected cabal with words like hell, pain, awful, sucks, frustrating, and hideous. Only this topic showed such grave dissatisfaction.