我遵循此处的指示: https://haskell.fpcomplete.com/tutorial/stack-script
我有一个具有以下文件结构的 cabal/stack 项目:
app/Main.hs
src/Lib.hs
我可以运行 Main.hs:
stack runghc -- app/Main.hs
如果 Main.hs 不导入 Lib.hs,则有效,但如果导入,我会收到此错误:
app/Main.hs:3:1: error:
Ambiguous module name ‘Lib’:
it was found in multiple packages:
haskell-starter-0.1.0.0 libiserv-8.6.3
|
3 | import Lib
| ^^^^^^^^^^
是否有在构建中包含 src/Lib.hs 文件?对于一个包来说,它看起来像:
stack runghc --package xyz -- app/Main.hs
但是对于模块或文件呢?像这样的东西:
stack runghc --module src/Lib.hs -- app/Main.hs
?
更新:所以我尝试了这个:
stack runghc -- -i src/* app/Main.hs
我得到了:
src/Lib.hs:0:66: error: • Variable not in scope: main :: IO a0 • Perhaps you meant ‘min’ (imported from Prelude)
最佳答案
您需要传递runghc
-i
选项来告诉它包含路径。以下内容应该有效:
stack runghc -- -isrc app/Main.hs
关于haskell - 作为脚本运行 .hs 文件时如何导入相邻模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105510/