I don't much about how intl:gettext works. Is the following OK? Non English language readers will need to
understand yes and no. So it goes.
(defun $askequal (a b)
(let ((answer (meqp (sratsimp a) (sratsimp b)))) ; presumably handles mbags and extended reals.
(setq answer
(cond ((eq answer t) '$yes)
((eq answer nil) '$no)
(t (retrieve `((mtext) ,(intl:gettext "Is ") ,a ,(intl:gettext " equal to ") ,b ,(intl:gettext "?")) nil))))
(cond ((member answer '($no |$n| |$N|) :test #'eq)
(tdpn (sub b a))
'$no)
((member answer '($yes |$y| |$Y|) :test #'eq)
(tdzero (sub a b))
'$yes)
(t
(mtell (intl:gettext "Acceptable answers are yes, y, Y, no, n, N. ~%"))
($askequal a b)))))
--Barton