Рекомендуемый способ распространения ваших проектов на Haskell - использовать Cabal .Cabal является как системой сборки, так и менеджером пакетов для кода на Haskell, и позволяет легко создавать код на Haskell на разных платформах, обрабатывая при этом зависимости.
Вот пример файла cabal:
Name: MyPackage
Version: 0.0
Cabal-Version: >= 1.2
License: BSD3
Author: Angela Author
Synopsis: Small package an utility program
Build-Type: Simple
Executable myutility
Build-Depends: base
Main-Is: Main.hs
Hs-Source-Dirs: src
Вы можете создать файл cabal в интерактивном режиме, набрав
$ cabal init
Затем Cabal задаст вам несколько простых вопросов и сгенерирует файл cabal на основе ваших ответов.Затем вы можете настроить этот файл в соответствии с вашими потребностями.
Чтобы установить пакет, просто запустите его в каталоге пакетов
$ cabal install
Вы также можете загрузить свой пакет на Hackage , стандартный репозиторий пакетов Haskell.Таким образом, люди могут загрузить и установить ваш пакет (и любые зависимости) за один шаг с помощью команды
$ cabal install mypackage
Также существуют инструменты для преобразования пакетов Cabal в другие менеджеры пакетов, если вы не хотитетребовать, чтобы ваши пользователи установили Cabal (хотя Cabal включен в Haskell Platform ).
Он также хорошо работает с Haddock для создания справочной документации для вашего пакета,Ознакомьтесь с некоторыми пакетами на Hackage для примера результатов.
В настоящее время также ведется работа по улучшению поддержки наборов тестов в Cabal.
В целом, эти и многие другие причины делают использование Cabal большим преимуществом для организации, создания и распространения ваших проектов на Haskell.