In coroutining mode, if Number is a free variable, the call to atan/2 is delayed until this variable is instantiated.
Success: atan(0.0, 0.0). atan(1.0, Result). (gives Result = 0.785398) atan(-8, Result). (gives Result = -1.44644) Fail: atan(1, 0.0). Error: atan(A, 6.0). (Error 4). atan(1.55741, 1). (Error 5). atan(1 + 0.55741, 1.0). (Error 24). atan(5, r). (Error 24).