Depending on if the 'print' statement is present, the program either
loops forever or terminates rapidly.
val x = 5.0
fun sqrtx y =
let
val y' = ((x / y + y) / 2.0)
val () = print (Real.toString y ^ " ...\n")
in
if Real.== (y', y) then y else sqrtx y'
end
val () = print (Real.toString (sqrtx 2.0) ^ "\n")