haskell - 使用 Stack 构建逆变器会导致无法推断逆变器的约束错误
问题描述
在构建我的项目时,我收到如下错误:
/tmp/stack19408/contravariant-1.5/src/Data/Functor/Contravariant/Divisible.hs:233:10: error:
• Could not deduce (Contravariant (Backwards f))
arising from the superclasses of an instance declaration
from the context: Divisible f
bound by the instance declaration
at src/Data/Functor/Contravariant/Divisible.hs:233:10-47
• In the instance declaration for ‘Divisible (Backwards f)’
|
233 | instance Divisible f => Divisible (Backwards f) where
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我无法弄清楚这里到底发生了什么,或者是我的错误还是所涉及的库有问题。我做错什么了吗?
我试图创建可能导致此问题的最小项目。在空白 Stack 项目中,将解析器更改为ghc-8.6.2
并添加依赖项:
extra-deps:
- contravariant-1.5
- StateVar-1.1.1.1
- base-4.12.0.0
- array-0.5.2.0
添加contravariant
到dependencies
in package.yaml
,然后导入Data.Functor.Contravariant.Divisible
in Lib.hs
。这导致运行时出现编译错误stack build
。
解决方案
不是你——发布的软件包还没有赶上 base-4.12。
现在Contravariant
类在 中base
,for 的实例Backwards
应该移动到transformers
定义后者的位置。有一个添加实例的补丁,但我认为它没有发布到 Hackage。
在你的鞋子里,我会:
- 在本地查看 darcs 存储库
- 将本地结帐添加为
extra-dep
- 错误维护者发布
transformers
推荐阅读
- asp.net-core - 自从升级到 .NET Core 3.1 后,标签助手无法正常工作
- html - 如何在内容的一侧创建一个简单的粘性导航元素?
- scala - 展平 Spark RDD 中的选项
- typescript - Vue 3 组合 API 从对象 ref 获取值
- r - 用 R 中的 mix 包用分类变量进行插补
- python - Python将base64转换为png
- powershell - powershell:错误的符号链接解析
- swift - 将终端命令的输出重定向到 TextView
- amazon-web-services - API 网关 + Lambda 架构 = 负载均衡器 + 应用服务器
- android - 如何在 Kotlin 中用 0、= 零、!= null 替换 NaN 值以提高速度?