O Verse tem um tipo especial, any, que é o subtipo de todos os tipos (todos os outros tipos são subtipos de any). Por isso, any é compatível com poucas operações, pois todos os outros tipos devem poder fornecer a mesma funcionalidade que any proporciona.
Por exemplo, se any fosse usado para definir uma operação de comparação (mas não é), todos os outros tipos também teriam que definir uma operação de comparação (mas não definem).
Não há muito o que fazer com um tipo any. Mas é bom estar ciente dele, pois poderá aparecer quando você escrever um código que gera um erro.
Mas há maneiras de usar any:
Letters := enum:
A
B
C
letter := class:
Value : char
Main(Arg : int) : void =
X := if (Arg > 0)
Letters.A
else
letter{Value := 'D'}
No exemplo de código acima, X recebe o tipo any, pois é o subtipo mais inferior de Letters e letter.
De modo mais útil, any pode ser usado como o tipo para um parâmetro de uma função que é ignorada (mas pode ser necessário como um argumento para um método de uma interface implementada).
Por exemplo:
~~~(verse) FirstInt(X:int, :any) : int = X
O segundo argumento para `FirstInt` é ignorado e pode ser do tipo `any`, por isso recebe o tipo `any`. `FirstInt` pode ser escrito de forma mais geral usando [tipos paramétricos](verse-glossary#parametric-type). Por exemplo:
~~~(verse)
First(X:t, :any where t:type) : t = X
~~~