Verse admite dar a un tipo otro nombre que pueda utilizarse para referirse al mismo tipo subyacente. Esto se conoce como un alias de tipo. La sintaxis es parecida a la de la initialización de constantes, ya que, básicamente, es lo mismo, pero utilizando tipos en lugar de valores.
Por ejemplo, para asignar un alias a float, se puede utilizar la sintaxis siguiente:
number := float
Esto se puede utilizar para acortar las firmas de algunos tipos. Por ejemplo, en lugar de tener que escribir el código siguiente,
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
se puede introducir un alias para la tupla, así:
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
Esto es especialmente útil en combinación con los tipos de función. Por ejemplo:
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y : X, F[Y]):
Y
Verse no admite actualmente alias de tipo paramétrico.
Por ejemplo:
predicate(t : type) := type{_(:t)<transacts><decides> : void}
no es compatible.