It would be nice to have Maxima take advantage of CL rationals, but
what benefit will that provide to the user except slightly faster
execution?
If we're going to go through code that tests numberp etc., I'd think
it would be more valuable to work on things which improve
functionality more directly. For example, many routines which work
with floats do not work with bigfloats. In particular, the whole
rational function package does not accept bigfloat coefficients,
though it does accept floating coefficients (using keepfloat:true).
Other packages, such as matrix inversion and solve, depend on the
rational function package, so one cannot invert matrices of bigfloats.
True, one can convert them to rationals first, but that often ends up
with huge denominator blow-up.
And of course any solution that works for bigfloats should be general
to allow for other number representations.
-s