Ответ 1
Скорее всего,
build-type: Simple
в вашем файле .cabal
. Если вы выберете тип сборки Simple
, вы по существу обещаете, что ваш файл Setup
ничего не делает, кроме вызова defaultMain
, а двоичный код cabal
не будет вызывать его. Если вы хотите, чтобы ваш файл Setup
запускался каждый раз, затем измените строку на
build-type: Custom
Вы также спрашиваете о обосновании необходимости в файле Setup
в любом случае: на самом деле это не требуется, если вы используете тип сборки Simple
. Бинар cabal
с радостью сконфигурирует и установит его. Однако считается, что хороший стиль включает в себя файл Setup
для любого пакета, поскольку он позволит пользователям устанавливать пакет, у которого есть доступная библиотека cabal
, но не инструмент cabal-install
(и Hackage обеспечивает наличие a Setup
по этой причине).