Это похоже на вопрос на stack ghci not loading up local modules? , но не совсем то же самое.стек ghci не загружает локальный модуль, но ghci делает
У меня есть каталог с файлами Main.hs и Shapes.hs, где Main.hs имеет ссылку на модуль Shapes.
Если я бегу
ghci Main.hs
все работает отлично. Это версия 7.10.
Но если я бегу, в 8-й версии,
stack ghci
:load Main.hs
Я получаю ошибку
[1 of 1] Compiling Main (Main.hs, interpreted)
Main.hs:3:1: error:
Failed to load interface for ‘Shapes’
It is not a module in the current program, or in any known package.
Failed, modules loaded: none.
Я попытался решение по ссылке
:load Shapes.hs Main.hs
, но он по-прежнему не Работа. Я получаю ошибку
[1 of 2] Compiling Shapes (Shapes.hs, interpreted)
[2 of 2] Compiling Main (Main.hs, interpreted)
Main.hs:1:1: error:
The IO action ‘main’ is not defined in module ‘Main’
Failed, modules loaded: Shapes.
Я нашел следующее, который обсуждает этот второй вопрос:
How to avoid "‘main’ is not defined in module ‘Main’" when using syntastic
Но если бы я должен был поставить в
main :: IO()
в файле Main.hs , Я все еще получаю ошибки. Если бы я дополнительно добавить строку
main = return()
и эти две дополнительные линии в конце, то он будет загружен. Но после загрузки он просто выходит из основного, и у меня больше нет доступа к основным функциям. Я не вижу причин, по которым мне нужно использовать любые функции ввода-вывода, когда я импортирую какой-либо другой модуль. Как я, в версии 8, загружать локальный модуль без использования IO?