我对Haskell很陌生,我正在尝试使用创建中的函数声明中的类型变量(不太确定在Haskell中将其称为什么)的记录类型。
与往常一样,代码更好地解释了我的问题:
data S a = S {x::a}
f :: a -> S a
f n = (S a){x=n}
GHC表示a在最后一行不在范围内。怎么能实现呢?
答案 0 :(得分:5)
使用f n = S {x=n}
,类型变量是不必要的
答案 1 :(得分:1)
如果你做需要声明中的类型变量,请使用scoped type variables扩展名。