In coroutining mode, if Number is a free variable, the call to cos/2 is delayed until this variable is instantiated.
Success: cos(0, 1.0). cos(1.2, Result). (gives Result = 0.362358) cos(-33, Result). (gives Result = -0.0132767) Fail: cos(1, 0.0). Error: cos(A, 6.0). (Error 4). cos(0, 1). (Error 5). cos(4 + 2, 0.96017). (Error 24). cos(5, r). (Error 24).