let plus_interval_interval a b =
    match a , b with
      | ({ D.sup=None ; D.inf=None } as top) , _
      | _ , ({ D.sup=None ; D.inf=None } as top) -> Interval top
      | _ -> Set (D.add_set (D.interval a) (D.interval b))