我正在关注本教程 webScraper使用HXT。 我在这里使用堆栈。
在为 MaybeT 添加依赖项时,它要求:
Recommended action: try adding the following to your extra-deps in /Users/***/Haskell Development/Scraper/stack.yaml:
- 也许T-0.1.2
现在这样做最终会在运行堆栈构建时出现此消息:
In the dependencies for MaybeT-0.1.2: base-4.9.0.0 must match <4.8 (latest applicable is 4.7.0.2) needed due to Scraper-0.1.0.0 -> MaybeT-0.1.2
作为 Stack 新手,我无法解决问题,在我的 cabal 文件中 依赖关系:
build-depends: base >= 4.7 && < 5
, hxt
, url
, HTTP
, MaybeT
在 stack.yaml 中
resolver: lts-7.12
extra-deps: [MaybeT-0.1.2]
我错过了什么。我该如何解决这个问题?
最佳答案
针对您的具体问题的解决方案是从outdated MaybeT package切换到Control.Monad.Trans.Maybe
中的transformers包提供的MaybeT
变压器.
也就是说,请注意版本不匹配涉及base。如果您确实需要使用 MaybeT 包,则必须将堆栈解析器切换到快照,例如 lts-6.26
,它使用 base-4.8 或更低版本(即 GHC 7.10.3 或更低版本)。 base 版本与 GHC 版本耦合,其他一切都取决于 base,因此没有简单的方法将 base 切换到旧版本,如果运气好的话,与其他软件包一起使用也是可能的。
关于haskell - 在堆栈项目中添加 MaybeT 依赖项时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979171/