In coroutining mode, if Number1 or Number2 are free variables, the call to xor/3 is delayed until these variables are instantiated.
Success: xor(11, 7, 12). xor(11, -7, Result). (gives Result = -14) Fail: xor(1, 2, 4). Error: xor(A, 2, 6). (Error 4). xor(6, 2.0, 4.0). (Error 5). xor(4 + 2, 2, 4). (Error 24). xor(5, 2, r). (Error 24).