高等级多态性中“秩”的起源是什么?

时间:2017-11-02 18:01:53

标签: haskell purescript

我正在寻找类似于更高类型多态性的解释,其中一种类型只是一组谓词类型。

1 个答案:

答案 0 :(得分:6)

一种类型的等级描述了通用量词出现逆转的深度(Kfoury& Tiuryn,1992):

Monotypes τ, σ(0) ::= a | τ1 → τ2
Polytypes σ(n+1) ::= σ n | σ n → σ(n+1) | ∀a.σ(n+1)

以下是一些例子:

Int → Int Rank 0
∀a.a → a Rank 1
Int → (∀a.a → a) Rank 1
(∀a.a → a) → Int Rank 2

https://functionalprogramming.slack.com/archives/C0432GV99/p1509647117000276