let inv i =
  match i.lo, i.hi with
    | Some(alpha, l), Some(h, beta)
        when Q.is_pos l || Q.is_neg h ->
        let lo = Some(beta, Q.inv h) and hi = Some(Q.inv l, alpha) in
          make (Dom.Real, lo, hi)
    | _ -> 
        mk_real