let pp fmt i =
  Dom.pp fmt i.dom;
  if not(i.lo = None && i.hi = Nonethen
    begin
      (match i.lo with
         | None -> Pretty.string fmt "(-inf"
         | Some(alpha, q) -> Pretty.string fmt (if alpha then "[" else "("); Q.pp fmt q);
      Pretty.string fmt ",";
      (match i.hi with
         | None -> Pretty.string fmt "inf)"
         | Some(q, beta) ->  Q.pp fmt q; Pretty.string fmt (if beta then "]" else ")"))
    end