【问题标题】:How to resolve mismatch module name in haskell stack如何解决haskell堆栈中不匹配的模块名称
【发布时间】:2021-08-16 15:26:50
【问题描述】:

我生成了一些在Bnfc/Par.hs 中名为Par.hs 的haskell 模块

生成的模块是

module Bnfc.Abs where

在我的图书馆引用这是

module Lib
    ( someFunc
    ) where

import Bnfc.Abs
import Text.Printf

我的package.yamlstack 是这样配置的

library:
  source-dirs: 
    - src
    - Bnfc
    File name does not match module name:
    Saw: ‘Bnfc.Par’
    Expected: ‘Par’
  |
9 | module Bnfc.Par

但在运行stack ghci 时出现上述错误。我不明白我做错了什么?

【问题讨论】:

  • 您能否为您的项目发布tree 输出(不包括.stack-work 等)?
  • @sjakobi 感谢您的提示。我发现了问题所在。

标签: haskell haskell-stack bnfc


【解决方案1】:

我发现了问题所在。

我将Bnfc 文件夹移动到src 文件夹中并且层次结构有效,因为在编译haskell 时将source-dirs 下的目录视为根目录。

【讨论】: