True if the operator is commutative (if left & right can be inverted)
returns: DataType | IType
Returned data type
optional
impure: boolean
If the function is marked as impure, it will not be simplified
(ex: "select myFn(1) from myTable" will call myFn() for each row in myTable, even if it does not depend on its result)
optional
allowNullArguments: boolean
If true, the function will also be called when passing null arguments