Haskell ghci:模块&x2018;main:main’;在多个文件中定义-在新的small stack init build ghci包中

Haskell ghci:模块&x2018;main:main’;在多个文件中定义-在新的small stack init build ghci包中,haskell,haskell-stack,Haskell,Haskell Stack,我尝试使用vscode设置一个基于堆栈的Haskell IDE,并从使用stack init创建的一个小项目开始,然后在src中添加第二个模块,并在package.yaml中添加一些依赖项。它构建正常,但当我启动堆栈ghci时,会出现警告: Warning: Multiple files use the same module name: * Paths_primo found at the following paths * /home/frank/Wo

我尝试使用vscode设置一个基于
堆栈的Haskell IDE,并从使用
stack init
创建的一个小项目开始,然后在
src
中添加第二个模块,并在
package.yaml
中添加一些依赖项。它构建正常,但当我启动堆栈ghci时,会出现警告:

Warning: Multiple files use the same module name:
         * Paths_primo found at the following paths
           * /home/frank/Workspace11/primo/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/build/autogen/Paths_primo.hs (primo:lib)
           * /home/frank/Workspace11/primo/.stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.1.0/build/primo-exe/autogen/Paths_primo.hs (primo:exe:primo-exe)
* * * * * * * *

GHCi, version 8.10.4: https://www.haskell.org/ghc/  :? for help
[1 of 3] Compiling Lib              ( /home/frank/Workspace11/primo/src/Lib.hs, interpreted )
[2 of 3] Compiling YamlRead         ( /home/frank/Workspace11/primo/src/YamlRead.hs, interpreted )
[3 of 3] Compiling Main             ( /home/frank/Workspace11/primo/app/Main.hs, interpreted )
Ok, three modules loaded.
似乎与
autogen
Paths\u primo
存在混淆(
primo
是软件包的名称)。我做错了什么


一般问题:什么是正确的方法来清理堆栈项目,以便在一些实验之后“重新开始”?删除
cabal
文件和
stack work
目录是正确的。Waht与stack.yaml和“stack.yaml.lock”在一起?

这似乎是在报告的无害警告,其根本原因是。消除警告的一种解决方法是,通过将以下内容添加到
package.yaml中的
部分,禁用为
primo exe
可执行文件生成
路径
模块:

when:
- condition: false
  other-modules: Paths_primo

你没有做错什么。看来你遇到了麻烦。GitHub问题链接到一个解释并提供了一个解决方法。感谢您提供的信息!我不会使用这种变通方法,因为警告没有不良影响。