Cabal is a system for building and packaging Haskell libraries and programs. The word “cabal” itself can refer to one of the 4 things.