一个类型的等级描述了通用量词出现逆转的深度(Kfoury&Tiuryn,1992):
Monotypes ?, ?(0) ::= a | ?1 ? ?2
Polytypes ?(n+1) ::= ? n | ? n ? ?(n+1) | ?a.?(n+1)
Run Code Online (Sandbox Code Playgroud)
这里有些例子:
Int ? Int Rank 0
?a.a ? a Rank 1
Int ? (?a.a ? a) Rank 1
(?a.a ? a) ? Int Rank 2
Run Code Online (Sandbox Code Playgroud)
https://functionalprogramming.slack.com/archives/C0432GV99/p1509647117000276