Templates

The basic “new idea” is, to define templates (classes and functions) mostly the same as they are used.
Similar as in Java, C#, Swift and Rust.

Class Templates

The template parameters (<...>) are given after the class name, so that the definition is similar to the usage (in a variable declaration).

class MyArray<Number T> {
    T* numbers = NullPtr
    Int size = 0
}

Function Templates

Requires

Further restrict the type with requires (as in C++):

Template Extension