2013-02-22 20 views
28

Per quanto ne so, esiste un algoritmo di verifica del tipo decidibile (solo) per i tipi di grado 2. GHC usa in qualche modo questo fatto e ha delle implicazioni pratiche?Ci sono dei vantaggi nell'uso di Rank2Types in favore di RankNTypes?

Esiste anche una nozione di tipi principali per i tipi di grado 2 e un algoritmo di inferenza di tipo? Se sì, GHC lo usa?

Esistono altri vantaggi dei tipi di rango 2 su rango- n tipi?

risposta

24

Rank2Types è un synonym per RankNTypes. Quindi al momento non ci sono vantaggi del rank-2 over rank-n.

27

In linea di principio, il tipo di controllo è decidibile per i tipi di rango 2. Ma ciò non sarebbe mai stato incluso in GHC (eccessivamente complicato, non si combina bene con altre funzionalità del sistema di tipi). Quindi no. Rank2Types è deprecato (okay, non ti dà un avvertimento, ma lo è) quindi usa RankNTypes.