Język Verse obsługuje funkcję nadawania typowi innej nazwy, której można użyć, aby odwoływać się do danego typu podstawowego. Nazywane jest to aliasem typu. Składnia jest podobna, jak w przypadku inicjowania stałej, ponieważ operacja jest zasadniczo taka sama z tą różnicą, że używa się typów zamiast wartości.
Na przykład, aby nadać alias typowi wartości zmiennoprzecinkowej float
, można użyć następującej składni:
number := float
W ten sposób można skracać niektóre sygnatury typów. Na przykład zamiast poniższego kodu:
RotateInts(X : tuple(int, int, int)) : tuple(int, int, int) =
( X(3), X(1), X(2))
można zastosować wersję z aliasem dla krotki, która będzie wyglądać następująco:
int_triple := tuple(int, int, int)
RotateInts(X : int_triple) : int_triple =
(X(3), X(1), X(2))
Jest to szczególnie przydatne w połączeniu z typami funkcji. Na przykład:
int_predicate := type{_(:int)<transacts><decides> : void}
Filter(X : []int, F : int_predicate) : []int =
for (Y : X, F[Y]):
Y
Pamiętaj, że obecnie język Verse nie obsługuje aliasów typów parametrycznych.
Na przykład:
predicate(t : type) := type{_(:t)<transacts><decides> : void}
nie jest obsługiwane.