Cabal è un sistema per costruire e impacchettare librerie e programmi Haskell. Definisce un'interfaccia comune per gli autori e i distributori di pacchetti per costruire facilmente le loro applicazioni in modo portabile. Cabal fa parte di un'infrastruttura più ampia per distribuire, organizzare e catalogare librerie e programmi Haskell.