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