Ответ 1
В настоящее время cabal
поддерживает подкоманду cabal repl
, которая выполняет всю настройку для вас, поэтому, по крайней мере, для ghci
следующее не требуется. Тем не менее:
Команда cabal build
создает файл dist/build/autogen/cabal_macros.h
, который содержит все необходимые вам определения. Чтобы включить этот файл в вызов ghc, вам понадобятся флаги -optP-include -optPdist/build/autogen/cabal_macros.h
.
Для удобства вы можете разместить следующее в файле .ghci
в каталоге проекта:
:set -optP-include -optPdist/build/autogen/cabal_macros.h
чтобы вам не приходилось вводить параметры каждый раз, когда вы хотите использовать ghci.
Остерегайтесь, однако: макросы будут определены в соответствии с конфигурацией при последнем запуске cabal build
и не будут обновляться при установке новых пакетов или использовании другой версии GHC: настроить и перестроить пакет.
(Благодаря Саймону Хенгелю в списке библиотек для этой мудрости: http://www.haskell.org/pipermail/libraries/2012-September/018491.html).