Это ошибка в GHC, и она была исправлена в GHC 8.6.4.
Я проверил ее с помощью GHC 8.6.3, GHC 8.6.4 и GHC 8.6.5 и последние две версии работают как положено.
Я использовал x64 Windows стек haskell , и я использую Windows 10 со всеми установленными обновлениями (по состоянию на 2019-05-25.)
(Для всех версий GHC: если я пишу runhaskell Fail2
или runhaskell Fail2.hs
не имеет значения.)
GHC 8.6.3
это работает:
stack --resolver lts-13.11 runhaskell Fail2
, затем я компилирую Fail1:
stack --resolver lts-13.11 ghc -- -O2 --make Fail1
, после чего оригинальная команда runhaskell зависает при запуске Fail2.
, затем я компилирую Fail2:
stack --resolver lts-13.11 ghc -- -O2 --make Fail2
затем происходит сбой исходной команды runhaskell, как это и описывает вопрос.
GHC 8.6.4
С --resolver lts-13.19
(который использует GHC 8.6.4) все команды работаюткак и ожидалось.
GHC 8.6.5
То же самое для --resolver lts-13.23
(который использует GHC 8.6.5).
Решение
Просто обновить доновейшая версия GHC, или, по крайней мере, обновленнаяe до ghc 8.6.4.