sig
  type t
  val compare : Interval.t -> Interval.t -> int
  val equal : Interval.t -> Interval.t -> bool
  val pp : Format.formatter -> Interval.t -> unit
  val show : Interval.t -> string
  val make : QQ.t option -> QQ.t option -> Interval.t
  val make_bounded : QQ.t -> QQ.t -> Interval.t
  val top : Interval.t
  val bottom : Interval.t
  val const : QQ.t -> Interval.t
  val zero : Interval.t
  val one : Interval.t
  val const_of : Interval.t -> QQ.t option
  val negate : Interval.t -> Interval.t
  val mul : Interval.t -> Interval.t -> Interval.t
  val div : Interval.t -> Interval.t -> Interval.t
  val modulo : Interval.t -> Interval.t -> Interval.t
  val add : Interval.t -> Interval.t -> Interval.t
  val floor : Interval.t -> Interval.t
  val join : Interval.t -> Interval.t -> Interval.t
  val meet : Interval.t -> Interval.t -> Interval.t
  val leq : Interval.t -> Interval.t -> bool
  val is_nonnegative : Interval.t -> bool
  val is_nonpositive : Interval.t -> bool
  val is_negative : Interval.t -> bool
  val is_positive : Interval.t -> bool
  val elem : QQ.t -> Interval.t -> bool
  val lower : Interval.t -> QQ.t option
  val upper : Interval.t -> QQ.t option
  val of_apron : Apron.Interval.t -> Interval.t
  val apron_of : Interval.t -> Apron.Interval.t
  val integral : Interval.t -> Interval.t
  val log : Interval.t -> Interval.t -> Interval.t
  val exp_const : Interval.t -> int -> Interval.t
end