(defmacro safely-binop (op x y)
`(cond
((typep ,x 'single-float)
- (if (<= most-negative-single-float ,y most-positive-single-float)
+ (if (or (typep ,y 'single-float)
+ (<= most-negative-single-float ,y most-positive-single-float))
(,op ,x ,y)))
((typep ,x 'double-float)
- (if (<= most-negative-double-float ,y most-positive-double-float)
+ (if (or (typep ,y 'double-float)
+ (<= most-negative-double-float ,y most-positive-double-float))
(,op ,x ,y)))
((typep ,y 'single-float)
(if (<= most-negative-single-float ,x most-positive-single-float)