gpt4 book ai didi

haskell - "No instance for"错误 - 但实例存在(种类不匹配)

转载 作者:行者123 更新时间:2023-12-04 19:01:39 25 4
gpt4 key购买 nike

我从 ghc 为我的仆人库收到以下错误:

No instance for (GetEndpoint
(Verb 'GET 200 '[JSON] Position)
(Verb 'GET 200 '[JSON] Position)
'True)
arising from a use of `callServer3'

但我在范围内有一个实例,它看起来像这样:
instance GetEndpoint (Verb n s ct a) (Verb n s ct a) 'True where
getEndpoint _ _ _ _ server = server

这看起来和 ghc 找不到的一模一样。我现在有点困惑。

完整代码可以在这里找到:
  • Instance definition - 就在文件的底部。
  • File triggering the error - 相关代码也在底部。

  • 有什么线索吗?非常感谢您的任何提示!

    最佳答案

    给定的实例对于 n s ct 和 a 具有默认类型“*”。使用 poly 类型作为 n 或正确的具体类型:

    (Verb (n :: k1) (s :: Nat) (ct :: [*]) a)

    正确的实例如下所示:
    instance GetEndpoint (Verb (n :: k1) (s :: Nat) (ct :: [*]) a) (Verb n s ct a) 'True where
    getEndpoint _ _ _ _ server = server

    如果你不想启用 PolyKinds(它引入了一堆其他错误),你可以使用更受限制的 StdMethod对于 n:
    instance GetEndpoint (Verb (n :: StdMethod) (s :: Nat) (ct :: [*]) a) (Verb n s ct a) 'True where
    getEndpoint _ _ _ _ server = server

    完整代码(编译甚至按预期工作),可以找到 here .

    再次感谢 Carsten 的快速帮助!

    关于haskell - "No instance for"错误 - 但实例存在(种类不匹配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384579/

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