看来我需要明确地说forall
在数据定义中有参数类型。例如,这个
data A = A (forall s. ST s (STUArray s Int Int))
将工作,而这
data A = A (ST s (STUArray s Int Int))
惯于。
也许我问的东西太明显了,但是我不清楚原因是因为在大多数其他情况下,您不需要显式forall
指定参数类型;编译器代替它。那么这里有什么区别呢?
看来我需要明确地说forall
在数据定义中有参数类型。例如,这个
data A = A (forall s. ST s (STUArray s Int Int))
将工作,而这
data A = A (ST s (STUArray s Int Int))
惯于。
也许我问的东西太明显了,但是我不清楚原因是因为在大多数其他情况下,您不需要显式forall
指定参数类型;编译器代替它。那么这里有什么区别呢?