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