SICP Exercise 2.10
Interval spanning zero means one end is less than 0 and the other is greater than 0.
(define (div-interval x y)
(if (and (<= (lower-bound y) 0) (>= (upper-bound y) 0))
(error "Interval spans 0")
(mul-interval x
(make-interval (/ 1.0 (upper-bound y))
(/ 1.0 (lower-bound y))))))