我认为我得到了错误的术语 - 让我知道我应该用什么来代替下面的内容。PureScript“内部”量化类型
在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的任何行动都必须与任何地区一起工作。
我理解的最终目标,但有人可以澄清从类型角度来看,这说法,这如何被限制如同上面?
如果可能,是否可以在较简单的类型上显示差异,例如:有什么区别:
f1 :: forall i o. Array i -> Array o
f2 :: forall o. (forall i. Array i) -> Array o
我认为一个简短的例子会有所帮助。