在函数中使用声明中的类型变量

时间:2013-10-13 17:51:13

标签: haskell

我对Haskell很陌生,我正在尝试使用创建中的函数声明中的类型变量(不太确定在Haskell中将其称为什么)的记录类型。
与往常一样,代码更好地解释了我的问题:

data S a = S {x::a}

f :: a -> S a
f n = (S a){x=n}

GHC表示a在最后一行不在范围内。怎么能实现呢?

2 个答案:

答案 0 :(得分:5)

使用f n = S {x=n},类型变量是不必要的

答案 1 :(得分:1)

如果你需要声明中的类型变量,请使用scoped type variables扩展名。