У меня есть библиотека Haskell с несколькими исполняемыми файлами (тесты, тесты и т. Д.), Всего около шести. Когда я делаю рефакторинг в библиотеке, мне обычно нужно внести небольшое изменение в каждый из исполняемых файлов.Typechecking multiple 'Main's
В моем текущем рабочем процессе я отдельно компилирую каждый исполняемый файл (скажем, с помощью GHCi) и исправляю каждый. Это утомительно, потому что я должен указать путь к каждому исполняемому файлу и, кроме того, перезагрузить всю (очень большую) библиотеку, которая даже с GHCi занимает некоторое время.
Моей первой мыслью решить эту проблему было создание единственного фиктивного модуля, который импортирует исполняемые «Основные» модули. Однако это (конечно) требует, чтобы модули «Main» имели имя модуля, например module Executable1 where ...
. Но теперь каблят жалуется при компиляции исполняемого файла, что он не может найти модуль под названием «Main» (несмотря на то, что в файле cabal для каждого исполняемого файла явно указано «main-is»).
Я также пробовал ghci Exec1.hs Exec2.hs ...
, но он жалуется module ‘[email protected]:Main’ is defined in multiple files
.
Есть ли простой способ загрузить сразу несколько «основных» модулей с помощью GHCi, чтобы я мог их проверять одновременно?
Это спасет меня так много времени! Спасибо! – crockeea
Работает ли он по назначению? Я действительно не тестировал его –
Это действительно так. Предостережения: ваше имя файла должно совпадать с именем модуля, и вы должны экспортировать 'main' – crockeea