1

我对 Haskell 很陌生,我试图在创建记录类型时使用函数声明中的类型变量(不太确定在 Haskell 中如何调用它)。
与往常一样,代码更好地解释了我的问题:

data S a = S {x::a}

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

GHC 说 a 不在最后一行的范围内。这怎么可能实现?

4

2 回答 2

5

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

于 2013-10-13T18:04:49.360 回答
1

如果您确实需要声明中的类型变量,请使用作用域类型变量扩展。

于 2013-10-13T18:22:26.403 回答