Correct me if I'm (once again) mistaken, but I think GCL has some problems
with floating point
overflow. With Clozure CL 1.3
(%i3) safe_float(x) := block([y : errcatch(float(x))], if y = [] then
bfloat(x) else first(y))$
(%i4) safe_float(4.5b731);
float: floating point overflow converting 4.5b731
(%o4) 4.5b731
With GCL 2.6.8:
(%i18) safe_float(4.5b731);
(%o18) 1.3924557213221603e115
Barton