sig
  type t
  val pretty : Stdlib.Format.formatter -> Numerors_interval.t -> unit
  val prec : Numerors_interval.t -> Numerors_utils.Precisions.t
  val get_max_exponent : Numerors_interval.t -> int
  val get_exponents : Numerors_interval.t -> int * int
  val get_bounds : Numerors_interval.t -> Numerors_float.t * Numerors_float.t
  val top : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val pos_inf : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val neg_inf : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val nan : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val zero : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val pos_zero : prec:Numerors_utils.Precisions.t -> Numerors_interval.t
  val add_nan : Numerors_interval.t -> Numerors_interval.t
  val make_finite :
    prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t Eval.or_bottom
  val enlarge : Numerors_interval.t -> Numerors_interval.t
  val of_ints :
    prec:Numerors_utils.Precisions.t -> int * int -> Numerors_interval.t
  val of_floats :
    prec:Numerors_utils.Precisions.t -> float * float -> Numerors_interval.t
  val of_strings :
    prec:Numerors_utils.Precisions.t ->
    string * string -> Numerors_interval.t
  val of_numerors_floats :
    Numerors_float.t * Numerors_float.t -> Numerors_interval.t
  val of_floats_without_rounding :
    prec:Numerors_utils.Precisions.t -> float * float -> Numerors_interval.t
  val change_prec :
    Numerors_utils.Precisions.t -> Numerors_interval.t -> Numerors_interval.t
  val epsilon : Numerors_utils.Precisions.t -> Numerors_interval.t
  val compare : Numerors_interval.t -> Numerors_interval.t -> int
  val eq : Numerors_interval.t -> Numerors_interval.t -> bool
  val le : Numerors_interval.t -> Numerors_interval.t -> bool
  val lt : Numerors_interval.t -> Numerors_interval.t -> bool
  val ge : Numerors_interval.t -> Numerors_interval.t -> bool
  val gt : Numerors_interval.t -> Numerors_interval.t -> bool
  val is_included : Numerors_interval.t -> Numerors_interval.t -> bool
  val join :
    Numerors_interval.t -> Numerors_interval.t -> Numerors_interval.t
  val narrow :
    Numerors_interval.t ->
    Numerors_interval.t -> Numerors_interval.t Eval.or_bottom
  val is_nan : Numerors_interval.t -> bool
  val is_finite : Numerors_interval.t -> bool
  val is_zero : Numerors_interval.t -> bool
  val is_pos_zero : Numerors_interval.t -> bool
  val is_neg_zero : Numerors_interval.t -> bool
  val is_pos_inf : Numerors_interval.t -> bool
  val is_neg_inf : Numerors_interval.t -> bool
  val contains_nan : Numerors_interval.t -> bool
  val contains_a_zero : Numerors_interval.t -> bool
  val contains_pos_zero : Numerors_interval.t -> bool
  val contains_neg_zero : Numerors_interval.t -> bool
  val contains_infinity : Numerors_interval.t -> bool
  val contains_strictly_pos : Numerors_interval.t -> bool
  val contains_strictly_neg : Numerors_interval.t -> bool
  val is_strictly_pos : Numerors_interval.t -> bool
  val is_strictly_neg : Numerors_interval.t -> bool
  val add :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t -> Numerors_interval.t
  val sub :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t -> Numerors_interval.t
  val mul :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t -> Numerors_interval.t
  val div :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t -> Numerors_interval.t
  val neg : Numerors_interval.t -> Numerors_interval.t
  val abs : Numerors_interval.t -> Numerors_interval.t
  val sqrt :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t
  val square :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t
  val log :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t
  val exp :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t -> Numerors_interval.t
  val backward_le :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t ->
    Numerors_interval.t -> Numerors_interval.t Bottom.or_bottom
  val backward_lt :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t ->
    Numerors_interval.t -> Numerors_interval.t Bottom.or_bottom
  val backward_ge :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t ->
    Numerors_interval.t -> Numerors_interval.t Bottom.or_bottom
  val backward_gt :
    ?prec:Numerors_utils.Precisions.t ->
    Numerors_interval.t ->
    Numerors_interval.t -> Numerors_interval.t Bottom.or_bottom
  val backward_add :
    ?prec:Numerors_utils.Precisions.t ->
    left:Numerors_interval.t ->
    right:Numerors_interval.t ->
    result:Numerors_interval.t ->
    unit -> (Numerors_interval.t * Numerors_interval.t) Bottom.or_bottom
  val backward_sub :
    ?prec:Numerors_utils.Precisions.t ->
    left:Numerors_interval.t ->
    right:Numerors_interval.t ->
    result:Numerors_interval.t ->
    unit -> (Numerors_interval.t * Numerors_interval.t) Bottom.or_bottom
  val backward_mul :
    ?prec:Numerors_utils.Precisions.t ->
    left:Numerors_interval.t ->
    right:Numerors_interval.t ->
    result:Numerors_interval.t ->
    unit -> (Numerors_interval.t * Numerors_interval.t) Bottom.or_bottom
  val backward_div :
    ?prec:Numerors_utils.Precisions.t ->
    left:Numerors_interval.t ->
    right:Numerors_interval.t ->
    result:Numerors_interval.t ->
    unit -> (Numerors_interval.t * Numerors_interval.t) Bottom.or_bottom
end