O Verse oferece suporte para dar a um tipo outro nome que pode ser usado para fazer referência ao mesmo tipo subjacente. Isso é conhecido como alias de tipo. A sintaxe é semelhante à inicialização da constante, pois é basicamente a mesma coisa, mas usando tipos em vez de valores.
Por exemplo, para dar um alias a float, a seguinte sintaxe pode ser usada:
number := float
Você pode usar isso para encurtar algumas assinaturas de tipo. Por exemplo, em vez do código abaixo,
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
um alias poderia ser introduzido para tuple, desta maneira:
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
Isso é particularmente útil em combinação com tipos de função. Por exemplo,
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y : X, F[Y]):
Y
Observe que o Verse atualmente não oferece suporte a aliases de tipo paramétrico.
Por exemplo,
predicate(t : type) := type{_(:t)<transacts><decides> : void}
não tem suporte.