This implementation realizes operators as functions and creates types of kind 'function'.
If Typir does not use the function kind so far, it will be automatically added.
(Alternative implementation strategies for operators would be a dedicated kind for operators, which might extend the 'function' kind)
Nevertheless, there are some differences between operators and functions:
Operators have no declaration.
It is not possible to have references to operators.
The same operator (i.e. same operator name, e.g. "+" or "XOR") with different types for its operands will be realized as different function types,
e.g. there are two functions for "+" for numbers and for strings.
This implementation realizes operators as functions and creates types of kind 'function'. If Typir does not use the function kind so far, it will be automatically added. (Alternative implementation strategies for operators would be a dedicated kind for operators, which might extend the 'function' kind)
Nevertheless, there are some differences between operators and functions:
The same operator (i.e. same operator name, e.g. "+" or "XOR") with different types for its operands will be realized as different function types, e.g. there are two functions for "+" for numbers and for strings.
All operands are mandatory.