diff --git a/level-0/l0-numbers.lisp b/level-0/l0-numbers.lisp index 37b0c7dba..e9198a729 100644 --- a/level-0/l0-numbers.lisp +++ b/level-0/l0-numbers.lisp @@ -85,11 +85,12 @@ (defun %maybe-make-ratio (numerator denominator res) (if res - (progn - (require-type res 'ratio) - (setf (%numerator res) numerator - (%denominator res) denominator) - res) + (number-case res + (ratio + (setf (%numerator res) numerator + (%denominator res) denominator)) + (t + (%make-ratio numerator denominator))) (%make-ratio numerator denominator))) ; this is no longer used