Any Type

The Any Type is a type that is matches against all other types in the language. Structs, primitives, strings, arrays, array views, and dynamic arrays are all auto castable to Any Type. Take for example the print function in the Basic module:

print :: (fmt: string, param: ..Any) {
  //..
}

The print function takes in a parameter of Any time, and the type information is available at runtime.

The Any Type is a tuple of two values: the type info and the pointer to the value.

Any :: struct {
  type: *Type_Info;
  value_pointer: *void;
}