I'd like a little clarification on the precedence of the return statement, which appears to go against the general precedence rules.
For example the expression
^ 2 + 3.
returns 5(which is what I want) but shouldn't it return just 2 since Unary operators of which ^ is one has higher precedence over + which is Binary?.