gpt4 book ai didi

haskell - 使用 GHC 泛型时参数类型错误

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

我一直在关注GHC.Generics教程制作一个简单的泛型类型类,为任意类型提供默认值。但是,当我尝试加载我的文件(相关代码片段,仍然会产生错误)

{-# LANGUAGE DefaultSignatures, DeriveGeneric, TypeOperators, FlexibleContexts #-}
import GHC.Generics

class Default a where
def :: a
default def :: (Generic a, GDefault (Rep a)) => a
def = to gdef

class GDefault f where
gdef :: f a

instance (Default a, Default b) => GDefault (a :+: b) where
gdef (L1 x) = gdef x
gdef (R1 x) = gdef x

我收到以下错误:

Generic.hs:12:46:
The first argument of ‘:+:’ should have kind ‘* -> *’,
but ‘a’ has kind ‘*’
In the instance declaration for ‘GDefault (a :+: b)’

我做错了什么?

最佳答案

你不是说……吗?

instance (GDefault a, GDefault b) => GDefault (a :+: b) where ...
-- ^ ^

关于haskell - 使用 GHC 泛型时参数类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30293467/

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