这与问题类似 stack ghci not loading up local modules? 但不完全一样。
我有一个包含Main.hs和Shapes.hs文件的目录,其中Main.hs引用了模板Shapes。
如果我跑
一切正常。这是版本7.10。ghci Main.hs
但如果我在版本8中运行
stack ghci
:加载Main.hs
我收到错误
[1/1]编译Main(Main.hs,解释)
Main.hs:3:1:错误:
无法加载“形状”
的界面它不是当前程序中的模块,也不是任何已知程序包中的模块。
失败,模块加载:无。
我在链接上尝试了解决方案
:加载Shapes.hs Main.hs
但它仍然无效。我收到了错误
[1/2 of 2]编译形状(Shapes.hs,解释)
[2 of 2]编译Main(Main.hs,解释)
Main.hs:1:1:错误:
IO动作'main'未在模块'Main'中定义
失败,加载模块:形状。
我发现以下内容讨论了第二个问题:
How to avoid "‘main’ is not defined in module ‘Main’" when using syntastic
但如果我要加入
在Main.hs文件中main :: IO()
,我仍然会收到错误。如果我要另外添加行
main = return()
并在最后有两个额外的行,然后它会加载。但加载后它只退出main,我不再能访问main中的函数。 在导入其他模块时,我没有看到任何需要使用任何IO功能的原因。在版本8中,如何在不使用IO的情况下加载本地模块?
答案 0 :(得分:0)
我解决了自己的问题。 Main.h中有一行名为
我删除了。现在,如果我用加载堆栈ghci,它就可以工作了模块主要位置
:l Main.hs Shapes.hs