在我的 haskell 项目中,我有以下目录结构(缺少一些条目但与此问题无关)
- quanthas
- quanthas.cabal
- src/
- QuantHas/
- Settings.hs
我的 Settings.hs 文件包含这个模块头
module QuantHas.Settings(module QuantHas.Settings) where
我的阴谋文件看起来像这样
Name: QuantHas
Version: 0.0
Description:
QuantHas project is an attempt to port QuantLib to Haskell keeping the functional flavor of Haskell.
License: BSD3
License-file: LICENSE
Build-Type: Simple
Cabal-Version: >=1.10
Library
Build-Depends: base >= 3 && < 5, array >= 0.2
Exposed-modules: QuantHas.Time.Frequency
QuantHas.Time.TimeUnit
QuantHas.Time.Period
QuantHas.Time.Date
QuantHas.Time.DayCounter
QuantHas.Time.BusinessDayConvention
QuantHas.Time.Calendar
QuantHas.Time.Calendars.UnitedKingdom
QuantHas.Time.Schedule
QuantHas.Settings
QuantHas.Require
default-language: Haskell2010
hs-source-dirs: src
-- ghc-options: -Wall
test-suite QuantHas-tests
type: exitcode-stdio-1.0
hs-source-dirs: testsuite
main-is: Tests.hs
default-language: Haskell2010
当我执行
cabal install --enable-tests
我收到这条消息
src/Quanthas/Settings.hs:17:8: error:
File name does not match module name:
Saw: ‘QuantHas.Settings’
Expected: ‘Quanthas.Settings’
这似乎是错误的。但是,如果我们按照阴谋集团的期望去做该怎么办。所以 Settings.hs 模块头现在是
module Quanthas.Settings(module Quanthas.Settings) where
阴谋集团现在说
src/QuantHas/Settings.hs:17:8: error:
File name does not match module name:
Saw: ‘Quanthas.Settings’
Expected: ‘QuantHas.Settings’
正是在这一点上,我放弃并转向 SO。谁能帮我理解发生了什么?
版本信息:平台:Macbook Pro 运行 MacOS 10.12.3 Haskell:8.0.1 Cabal:1.24.0.0
谢谢!
问题是在不同模块中的一个导入语句中存在拼写错误。由于您在不区分大小写的文件系统 (OS X) 上,GHC 能够找到模块内容,但在检查模块头时发现它与导入语句不匹配并出现错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句