2013-02-22 19 views
28

O ile mi wiadomo, istnieje rozstrzygalny algorytm sprawdzania typu (tylko) dla typów rangowych-2. Czy GHC używa w jakiś sposób tego faktu i czy ma jakieś praktyczne implikacje?Czy są jakieś zalety korzystania z Rank2Types na rzecz RankNTypes?

Czy istnieje również pojęcie głównych typów dla typów rangowych 2 i algorytm wnioskowania o typie? Jeśli tak, czy GHC go używa?

Czy są jakieś inne zalety typów rang 2 zamiast pozycji n typów?

Odpowiedz

24

Rank2Types jest synonym dla RankNTypes. Tak więc teraz nie ma żadnych zalet pozycji 2 nad rzędem-n.

27

Zasadniczo sprawdzanie typu jest rozstrzygalne dla typów 2. rzędu. Ale to nigdy nie zostanie włączone do GHC (zbyt skomplikowane, nie miesza się dobrze z innymi funkcjami systemu typu). Więc nie. Rank2Types jest przestarzałe (ok, nie daje ostrzeżenia, ale tak jest), więc użyj RankNTypes.