Я добавил пользовательскую Prelude, которая хорошо работает для stack build
и stack test
. Однако stack ghci
это не нравится, так как он пытается загрузить все это сразу:
$ stack --nix ghci
XXX-0.1.0.0: initial-build-steps (lib + exe)
The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
Configuring GHCi with the following packages: XXX
* * * * * * * *
Error: Multiple files use the same module name:
* Prelude found at the following paths
* XXX/server/Prelude.hs (XXX:exe:XXX.exe)
* XXX/src/Prelude.hs (XXX:lib)
* XXX/tests/Prelude.hs (XXX:exe:tests.exe)
* * * * * * * *
Not attempting to start ghci due to these duplicate modules.
Сначала объясним три разных Prelude.hs
файла: они идентичны, поскольку два из них являются символическими ссылками на третий файл; Я не думал о лучшем способе сделать это, не выставляя мои Prelude.hs
зависимым библиотекам.
Возможный обходной путь - указать стеку / ghci загружать только библиотечный код (в данном случае - src
), или, что еще лучше, указать ему пропускать при загрузке определенные файлы .hs
.