gpt4 book ai didi

haskell - 通过 : Cannot derive well-kinded instance 派生

转载 作者:行者123 更新时间:2023-12-04 08:11:26 25 4
gpt4 key购买 nike

当我尝试派生实例时遇到此错误。

Cannot derive well-kinded instance of form ‘HFunctor (ControlFlowCMD ...)’
Class ‘HFunctor’ expects an argument of kind ‘(* -> *, *)
-> * -> *’
• In the newtype declaration for ‘ControlFlowCMD’
我正在尝试这样做:
newtype ControlFlowCMD fs a = ControlFlowCMD (ControlCMD fs a)
deriving HFunctor via (ControlCMD fs a)
你可以看到我的类型所基于的数据类型和实例并试图派生 here ,在第 278 行。我不习惯使用 deriving via - 谁能解释这个错误的含义以及我将如何解决它?

最佳答案

问题是 (* -> *, *)或者,等效地,(Type -> Type, Type)是种类级元组,必须启用 DataKinds PolyKinds 扩展以处理它。 (我不完全确定为什么需要 PolyKinds;也许是为了允许更一般的类型推断。)
对于具有复杂类型的数据类型,通常是 good idea启用 StandaloneKindSignatures 并明确给出种类签名:

import Data.Kind
type ControlFlowCMD :: (Type -> Type, Type) -> Type -> Type
newtype ControlFlowCMD fs a = ...

关于haskell - 通过 : Cannot derive well-kinded instance 派生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65934095/

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