Verse possède un type spécial, any, qui est le super-type de tous les types (tous les autres types sont des sous-types de any). Pour cette raison, any prend en charge très peu d'opérations, car tous les autres types doivent être capables de fournir la même fonctionnalité que any.
Par exemple, si any devait définir une opération de comparaison (ce qu'il ne fait pas), alors tous les autres types devraient également définir une opération de comparaison (ce qu'ils ne font pas).
Il y a très peu de choses que vous pouvez faire avec un type any, mais il est utile de le connaître, car il peut apparaître lors de l'écriture de code à l'origine d'une erreur.
Il y a toutefois différentes façons d'utiliser any :
Lettres := enum:
A
B
C
letter := class:
Value : char
Main(Arg : int) : void =
X := if (Arg > 0)
Lettres.A
else
letter{Value := 'D'}
Dans l'exemple de code ci-dessus, on donne à X le type any, car c'est le plus petit super-type de Letters et letter.
Plus utilement, any peut être utilisé comme type pour un paramètre d'une fonction ignorée (mais exigible comme argument pour une méthode d'une interface implémentée).
Par exemple :
FirstInt(X:int, :any) : int = X
Le second argument de FirstInt est ignoré, et peut être de type any. On lui attribue donc le type any. FirstInt peut être rédigé de manière plus générale à l'aide des types paramétriques. Par exemple :
First(X:t, :any où t:type) : t = X