我从ghc为我的仆人库收到以下错误:
{234}+{9,999999999}?
但我在范围内有一个实例,看起来像这样:
No instance for (GetEndpoint
(Verb 'GET 200 '[JSON] Position)
(Verb 'GET 200 '[JSON] Position)
'True)
arising from a use of `callServer3'
看起来就像ghc找不到的那个。我现在有点困惑。
完整代码可以在这里找到:
任何线索?非常感谢任何提示!
答案 0 :(得分:5)
给定的实例有默认类型' *'对于n s ct和a。要么使用多种类型的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的快速帮助!