5. Type system

Felix types and their annotations are quite different to C++. Felix currenty supports tuple types, anonymous sum types, a struct type like C, and a union type, first class function types, first class array types, and a pointer type.

There is no notion of 'const' or 'volatile' supported by the type system.

All types support support recursion and polymorphism. In addition, an arbitrary family of abstract types can be created on the fly, by lifting any existing first class C or C++ type using a binding construction. Abstract types may also be polymorphic. [A lot more is needed here]