stack ghci不加载本地模块但是ghci会

时间:2017-02-06 11:07:33

标签: haskell-stack

这与问题类似 stack ghci not loading up local modules? 但不完全一样。

我有一个包含Main.hs和Shapes.hs文件的目录,其中Main.hs引用了模板Shapes。

如果我跑

  

ghci Main.hs

一切正常。这是版本7.10。

但如果我在版本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 :: IO()

在Main.hs文件中

,我仍然会收到错误。如果我要另外添加行

  

main = return()

并在最后有两个额外的行,然后它会加载。但加载后它只退出main,我不再能访问main中的函数。 在导入其他模块时,我没有看到任何需要使用任何IO功能的原因。在版本8中,如何在不使用IO的情况下加载本地模块?

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。 Main.h中有一行名为

  

模块主要位置

我删除了。现在,如果我用

加载堆栈ghci,它就可以工作了
  

:l Main.hs Shapes.hs