【发布时间】:2017-03-11 01:47:07
【问题描述】:
我认为我在图块中的术语有误 - 让我知道我应该在下面使用什么来代替。
在PureScript by Example, section 8.17 Mutable State,有讨论runST的类型:
runST :: forall a eff. (forall h. Eff (st :: ST h | eff) a) -> Eff eff a
这里要注意的是,区域类型 h 是在函数箭头左侧的括号内量化的。这意味着我们传递给 runST 的任何操作都必须适用于任何区域 h。
我了解最终目标,但有人可以从类型的角度澄清这一说法,以及如何按照上述方式进行限制吗?
如果可能,是否可以在更简单的类型上显示差异,例如有什么区别:
f1 :: forall i o. Array i -> Array o
f2 :: forall o. (forall i. Array i) -> Array o
我认为一个简短的例子会有所帮助。
【问题讨论】:
标签: purescript