title |
---|
Cabal |
Cabal is a system for building and packaging Haskell libraries and programs. The word "cabal" can refer to either of following1:
-
CABAL (the spec): CABAL is the Common Architecture for Building Applications & Libraries. It’s a specification for defining how Haskell applications and libraries should be built, defining dependencies, etc.
-
.cabal (the file format): The file format used to write down the aforementioned definitions for a specific package.
-
Cabal (the library): The library implementing the above specification and file format.
-
cabal (the executable): The cabal executable, more accurately named cabal-install, is a commandline tool that uses Cabal (the library) to resolve dependencies from Hackage and build packages.