In coroutining mode, if Number is a free variable, the call to tan/2 is delayed until this variable is instantiated.
Success: tan(0, 0.0). tan(12.3, Result). (gives Result = -0.272854) tan(-1, Result). (gives Result = -1.55741) Fail: tan(1, 0.0). Error: tan(A, 6.0). (Error 4). tan(0, 0). (Error 5). X is pi/2, tan(X, Result). (Error 20). tan(10.3 + 2, -0.272854). (Error 24). tan(5, r). (Error 24).