gpt4 book ai didi

haskell - 由于前奏不明确,无法构建 cabal 包

转载 作者:行者123 更新时间:2023-12-04 23:27:43 25 4
gpt4 key购买 nike

我一直在尝试安装BNF converter来自 cabal,但是构建它存在问题。显然,这个包使用了来自 haskell98 和版本 4.* 的基础模块的混合。这带来了一个问题,如果您在隐藏 haskell98 的情况下进行编译,则找不到某些模块。但是,如果您使用暴露的 haskell98 进行编译,则 ghc 无法判断它应该使用新的 Prelude 还是 haskell98 Prelude!

错误信息:

Main.hs:1:1:
Ambiguous module name `Prelude':
it was found in multiple packages: base haskell98-2.0.0.1

你如何解决这样的错误?

最佳答案

纠缠维护者上传修复。或者,如果他们没有响应,请考虑自己接管维护。

这是因为 haskell98 是一个兼容包,它复制了其他模块中的功能。新代码不应该依赖它,除非它与 Haskell-98 兼容。然而,这种变化是相对较新的,许多旧代码同时引用了“base”和“haskell98”,尽管它实际上并没有使用“haskell98”包。

在短期内,我会运行 cabal unpack BNFC ,然后编辑“.cabal”文件并删除对haskell98的引用来自“构建依赖:”字段。我还会增加库的版本号(此步骤对可执行文件无关紧要)。然后从您刚刚编辑的本地副本构建和安装。如果 BNFC 打算使用 mtl 版本 1,则可能存在其他问题,但如果需要,您可以自己添加该约束。

关于haskell - 由于前奏不明确,无法构建 cabal 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com