($ratsimp `((rat simp) 1 2)) => ((RAT) 1 2)
This is clearly a bug. $ratsimp should be returning a simplified
result. That said, in normal Maxima evaluation (meval), every
function result is simplified explicitly. So it is not clear that
this has any effects. It would be more serious if ratsimp returned
something marked simplified which wasn't, e.g. ((rat simp) 2 4).
By the way, if you give $ratsimp an unsimplified *argument* 2/4, it
does return an unsimplified value 2/4, but it does *not* mark it
simplified:
($ratsimp '((rat) 2 4)) => ((rat) 2 4)
I have not found any cases where the missing flag causes problems (yet).
There are several related issues.
($rat '((rat) 2 4)) => ((mrat simp nil nil) 2 . 4)
But many Maxima functions don't work well with
unsimplified arguments.
($ratdisrep ($rat '((rat) 2 4))) => ((rat) 2 4)
This is the underlying issue, I think, in the $ratsimp case.
It is not clear whether any of this causes problems in realistic use scenarios:
-s