私はタイルの用語を間違っていると思っています。 PureScript by Example, section 8.17 Mutable StateでPureScriptの "内部"の数値化タイプ
は、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
私は短い例が役立つと思います。