Verse permet de donner à un type un autre nom qui peut être utilisé pour faire référence au même type sous-jacent. C'est ce qu'on appelle un alias de type. La syntaxe est semblable à celle de l'initialisation de constante, car il s'agit essentiellement de la même chose, mais à l'aide de types au lieu de valeurs.
Par exemple, pour donner un alias à float, la syntaxe suivante pourrait être utilisée :
number := float
Vous pouvez l'utiliser pour raccourcir certaines signatures de type. Par exemple, au lieu du code ci-dessous,
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
un alias pourrait être introduit pour le tuple, comme ceci :
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
Cela est particulièrement utile en association avec les types de fonctions. Par exemple :
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y : X, F[Y]):
Y
Notez que Verse ne prend pas actuellement en charge les alias de type paramétrique.
Par exemple :
predicate(t : type) := type{_(:t)<transacts><decides> : void}
n'est pas pris en charge.