haskell - 在堆栈项目中添加 MaybeT 依赖项时遇到错误

标签 haskell haskell-stack

我正在关注本教程 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/

相关文章:

haskell - 使用 'stack build --profile' 时出现依赖性问题?

haskell - 使用 Stack 分析构建

haskell - 使用 FFI 的可执行文件是否需要 GHC 选项?

haskell - 在haskell程序中使用返回的EitherT

haskell - 如何从 Haskell 中任意类型 [a] 的标准输入中读取列表?

haskell - Church naturals、求幂函数和类型检查

haskell - 尝试通过堆栈安装 hlint 出现 "same package name"错误

haskell - 如何在 Haskell 中解析整数矩阵?

Haskell 余弦定理的实现

haskell - 如何删除 Haskell 堆栈安装的旧构建计划?