Sono abbastanza sicuro che tutti abbiano familiarità con i metodi generici del modulo:
T DoSomething<T>(T item)
Questa funzione è anche chiamata parametricamente polimorfica (PP), in particolare rank-1 PP.
Diciamo che questo metodo può essere rappresentato usando un oggetto funzione del modulo:
<T> : T -> T
 Cioè,   <T>    significa che prende un parametro di tipo, e   T -> T    significa che prende un parametro di tipo   T    e restituisce un valore dello stesso tipo. 
Quindi la seguente sarebbe una funzione di grado 2 di livello:
(<T> : T -> T) -> int 
La funzione non accetta parametri di tipo stesso, ma accetta una funzione che accetta un parametro di tipo. Puoi continuare a farlo in modo iterativo, rendendo il nesting sempre più profondo, ottenendo PP di livello sempre più alto.
Questa funzione è davvero rara tra i linguaggi di programmazione. Persino Haskell non lo consente per impostazione predefinita.
È utile? Può descrivere comportamenti difficili da descrivere altrimenti?
Inoltre, cosa significa che qualcosa deve essere impredicativo ? (in questo contesto)