Alias
Chaque argument est une déclaration de variable ou d'instance de classe.
Vous pouvez voir un argument comme la copie d'un objet externe qui est donné pour être traité par la fonction au départ, et qui est détruit quand la fonction se termine.

Les changements sur cet objet n'ont aucun effet sur l'original, si c'est une variable. Ce n'est pas le cas quand il s'agit d'une instance de classe: ce n'est alors plus une copie, mais l'adresse de l'instance originale qui est donnée à la fonction et tous changements sont en fait accomplis sur l'objet original.
Il est possible si besoin est, d'utiliser aussi l'original d'une variable plutôt qu'une copie: grâce au mot-clé "alias", le compilateur est informé qu'il s'agit d'un autre nom pour la variable originale.

Deux exemples pour illustrer les différences:

Une fonction sans alias void mafonct(int x)
   x + 100
  print x
return

int y = 5
mafonct(y)
print y
Affichera: >>> 105 5

Une fonction sans alias void mafonct(alias int x)
   x + 100
  print x
return

int y = 5
mafonct(y)
print y
Affichera: >>> 105 105