程序编译时,Idris REPL找不到导入

时间:2018-07-19 22:38:47

标签: haskell-stack idris

我克隆了this Idris library,并且可以根据需要进行编译。有一个example/目录,该目录使用该库(导入其某些模块),并且编译并运行良好。但是,当我尝试在Atom中运行REPL时,会显示一个熟悉的错误消息:

Can't find import Graphics/Util/GlfwConfig

这很有趣,因为执行make时,以下是输出行之一:

Installing Graphics/Util/Glfw.ibc to /home/jan/.stack/snapshots/x86_64-linux-tinfo6/lts-11.17/8.2.2/share/x86_64-linux-ghc-8.2.2/idris-1.3.0/libs/glfw/Graphics/Util

似乎暗示已安装此模块。

我可能误解了Haskell / Idris / Stack在这里安装和Idris模块的过程的一部分,那么我应该在这里做什么/理解什么?

2 个答案:

答案 0 :(得分:1)

我想问题很简单,该项目包含两个ipkg文件。一个用于库,另一个用于测试/示例。 example/hello中的一个:

package test

opts = "-p effects -p glfw " 

executable = hello
main = Main

包括对idris软件包glfw的依赖关系,但是如果您在顶级目录中调用Atom,Atom不会看到它。要进行验证,请切换到目录example/hello并调用atom .,然后从那里尝试。现在,ipkg文件位于顶级目录中,并将由Atom提取。

答案 1 :(得分:0)

使用stack时,必须通过堆栈stack ghci而不是ghci来启动REPL。这将编译并加载库中的模块。

我不熟悉Atom,但是根据this,REPL会尝试猜测要运行的正确ghci命令。它得到了错误的命令,并且没有运行stack ghci