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