Verse supporta l'assegnazione di un altro nome a un tipo che può essere utilizzato per riferirsi allo stesso tipo sottostante. Questo è noto come alias tipo. La sintassi è simile all'inizializzazione costante, in quanto prevede sostanzialmente la stessa procedura, ma utilizzando i tipi invece dei valori.
Per esempio, per dare un alias da eseguire al float si può usare la seguente sintassi:
number := float
Puoi utilizzarla per abbreviare alcune firme di tipo. Ad esempio, al posto del codice sottostante,
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
si potrebbe introdurre un alias per la tupla, come il seguente:
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
È particolarmente utile in combinazione con i tipi di funzione. Ad esempio,
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y : X, F[Y]):
Y
Tieni presente che Verse non supporta attualmente gli alias di tipo parametrico.
Ad esempio,
predicate(t : type) := type{_(:t)<transacts><decides> : void}
non è supportato.