The result type of the division depends on the value of the global flag prefer_rationals. When it is off, the result is a real, when it is on, the result is a rational. In coroutining mode, if Number1 or Number2 are free variables, the call to //3 is delayed until these variables are instantiated.
Success: /(10, 2, 5.0). /(10, -2.0, -5.0). /(9, 12, 3_4). (with set_flag(prefer_rationals, on)) Fail: /(1, 2, 1.0). Error: /(A, 2, 6.0). (Error 4). /(5, 2, r). (Error 5). /(6, 2, 3). (Error 5). /(2, 0, Result). (Error 20). /(4 + 2, 2, 12). (Error 24).