Concurrent Clean : rank-N polymorphism
[id:lethevert:20051229:p4]で、ランクN多相はまだ使えないよ、ということを書いていたのだけれど、
翻訳された言語報告のバージョンが2.0だったので、古かったらしい。
http://lethevert.blogspot.com/2006/10/re-verious-types.html
のサンプルに見られるように、rank-2は使用可能だ。
言語報告にある例
h :: (A.a: [a] -> Int) -> Int h f = f [1..100] + f ['a'..'z'] Start = h length
も問題なく動作する。