Full programs are declarations of classes, objects and global functions. Variables do not need to have their type declared. Variables can hold values of different types. There is a special type called array. There is a special type called table that is an associative table.
Function arguments can be different types, dynamically, at runtime.
Function and class declarations are not needed at compile-time. A pair of member functions can be defined that are called when a data member is accessed. A pair of member functions can be defined that are called using the syntax for data member access. Reading and writing array elements are treated distinctly and multiple subscripts are supported. Safe variable argument lists.