Fixed type confusion bug when compiling unary minus
Previously when `-a` was compiled in a `real` context but `a` is an integer `a` itself was being compiled in the real context, which is wrong. Instead a has to be compiled as an int and only then then converted to real. (commit: 2bba412)