Number and Result have to be of the same type.
In coroutining mode, if Number is a free variable, the call to -/2 is delayed until this variable is instantiated.
Success: -(1, -1). -(5, Result). (gives Result = -5) -(-6.2, Result). (gives Result = 6.2) Fail: -(1, 0). Error: -(A, 6). (Error 4). -(1, -1.0). (Error 5). -(1.0, -1). (Error 5). -(4 + 2, -6). (Error 24). -(1, r). (Error 24).