Newsimp.cl use of CL rationals



> 3. I think that using 1/2 instead of ((rat simp) 1 2)  does 
> not require any object oriented stuff.  In fact, you can 
> insert rational numbers into a maxima system by defining
> 
> (defun $makeclrat(num denom)  (/ num denom))
> 
> and see what happens.  

Many things work, some things break.  If you want Maxima to work
*reliably* with this change, I'd think you'd have to read a fair amount
of code.  Most of it will be near an instance of the atom RAT  (600+
instances), but I'd think it would also be prudent to look at the logic
near NUMBERP, $NUMBERP, and MNUMP (600+).  Most of those cases are
uninteresting and won't need to be changed, but some will.  And then
there will be a few more obscure cases which you'll only catch with
systematic code reading or systematic testing (i.e. writing lots of new
tests).  Or waiting for bug reports, which is not a strategy that really
appeals to me.

       -s

PS I agree that you don't need to introduce object orientation for this,
but... see my other mail (forthcoming).