Type equations edit

Type may be considered as a classification of value. As values are the solutions of equations, so types are the solution of type equations. Functions may be considered as mapping types to types. The relational model of evaluation will allow unknown types to be deduced from known types.

However, unlike values, types form a class/type hierarchy. Where multiple types are the result of the inverse of a functions mapping of types, the most derived type that is the parent type of both is chosen.

Type evaluation is meta phasic. Most type evaluation is performed in the compilation meta phase.

Function calls are polymorphic. All functions and rules matching the types apply.

Default (overridable) functions apply only when a derived function is not found. An overriding function or rule must be explicitly declared as override.