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