Вы должны перечислить все модули в конфигурационном файле cabal. В вашем случае вы просто поместите список модулей после exposed-module:
. Нет простого способа написать список модулей.
Cabal не может автоматически находить файлы, являющиеся частью исполняемого файла или библиотеки, поэтому он зависит от списка модулей в файле конфигурации. В отличие от GHC, cabal не может найти модули на основе операторов импорта в исходном коде. Если вы не перечислите каждый модуль, тогда вы сможете создать проект (потому что GHC может найти исходные файлы), но другие команды, такие как cabal sdist
, не будут обращаться к исходным файлам, которые не указаны.
Вы спрашиваете, как включить модуль в проект cabal без упоминания его в файле '.cabal'? – Heatsink
@Heatsink, no - Если вы компилируете библиотеку с cabal, вам нужно написать файл конфигурации '<...> .cabal'. В этом файле вы должны предоставить раздел 'Exposed-modules', в котором вам нужно перечислить ** каждый ** модуль, который вы хотите открыть. Я хочу показать ** все ** модули. –
Это не отвечает на мой вопрос. Каждый модуль должен быть указан в файле '.cabal'. Внутренние модули также должны быть указаны в «Other-modules». Вы просите альтернативные способы перечисления всех модулей, или вы просите о способах использования модуля без его перечисления? – Heatsink