使用 Stack 构建逆变会导致关于无法推断逆变的约束错误
Building contravariant using Stack leads to constraint error about not being able to deduce Contravariant
在构建我的项目时,出现如下错误:
/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
添加到package.yaml
中的dependencies
,并在Lib.hs
中导入Data.Functor.Contravariant.Divisible
。当 运行 stack build
.
时导致编译错误
不是你 - 已发布的软件包尚未赶上 base-4.12。
现在 Contravariant
class 在 base
中,Backwards
的实例应该移动到 transformers
,后者被定义。有 a patch that adds the instances,但我认为它没有发布到 Hackage。
站在你的角度,我会:
- 在本地检查 darcs 仓库
- 将本地结帐添加为
extra-dep
- 请维护者发布
transformers
在构建我的项目时,出现如下错误:
/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
添加到package.yaml
中的dependencies
,并在Lib.hs
中导入Data.Functor.Contravariant.Divisible
。当 运行 stack build
.
不是你 - 已发布的软件包尚未赶上 base-4.12。
现在 Contravariant
class 在 base
中,Backwards
的实例应该移动到 transformers
,后者被定义。有 a patch that adds the instances,但我认为它没有发布到 Hackage。
站在你的角度,我会:
- 在本地检查 darcs 仓库
- 将本地结帐添加为
extra-dep
- 请维护者发布
transformers