sig
  type t
  val equal : Integer.t -> Integer.t -> bool
  val compare : Integer.t -> Integer.t -> int
  val le : Integer.t -> Integer.t -> bool
  val ge : Integer.t -> Integer.t -> bool
  val lt : Integer.t -> Integer.t -> bool
  val gt : Integer.t -> Integer.t -> bool
  val add : Integer.t -> Integer.t -> Integer.t
  val sub : Integer.t -> Integer.t -> Integer.t
  val mul : Integer.t -> Integer.t -> Integer.t
  val native_div : Integer.t -> Integer.t -> Integer.t
  val rem : Integer.t -> Integer.t -> Integer.t
  val pos_div : Integer.t -> Integer.t -> Integer.t
  val divexact : Integer.t -> Integer.t -> Integer.t
  val c_div : Integer.t -> Integer.t -> Integer.t
  val c_rem : Integer.t -> Integer.t -> Integer.t
  val div_rem : Integer.t -> Integer.t -> Integer.t * Integer.t
  val cast : size:Integer.t -> signed:bool -> value:Integer.t -> Integer.t
  val abs : Integer.t -> Integer.t
  val one : Integer.t
  val two : Integer.t
  val four : Integer.t
  val onethousand : Integer.t
  val minus_one : Integer.t
  val is_zero : Integer.t -> bool
  val is_one : Integer.t -> bool
  val pgcd : Integer.t -> Integer.t -> Integer.t
  val ppcm : Integer.t -> Integer.t -> Integer.t
  val min : Integer.t -> Integer.t -> Integer.t
  val max : Integer.t -> Integer.t -> Integer.t
  val length : Integer.t -> Integer.t -> Integer.t
  val of_int : int -> Integer.t
  val of_int64 : Int64.t -> Integer.t
  val of_int32 : Int32.t -> Integer.t
  val to_int64 : Integer.t -> int64
  val to_int : Integer.t -> int
  val to_float : Integer.t -> float
  val neg : Integer.t -> Integer.t
  val succ : Integer.t -> Integer.t
  val pred : Integer.t -> Integer.t
  val round_up_to_r :
    min:Integer.t -> r:Integer.t -> modu:Integer.t -> Integer.t
  val round_down_to_r :
    max:Integer.t -> r:Integer.t -> modu:Integer.t -> Integer.t
  val pos_rem : Integer.t -> Integer.t -> Integer.t
  val shift_left : Integer.t -> Integer.t -> Integer.t
  val shift_right : Integer.t -> Integer.t -> Integer.t
  val logand : Integer.t -> Integer.t -> Integer.t
  val logor : Integer.t -> Integer.t -> Integer.t
  val logxor : Integer.t -> Integer.t -> Integer.t
  val lognot : Integer.t -> Integer.t
  val two_power : Integer.t -> Integer.t
  val two_power_of_int : int -> Integer.t
  val extract_bits :
    start:Integer.t -> stop:Integer.t -> Integer.t -> Integer.t
  val small_nums : Integer.t array
  val zero : Integer.t
  val eight : Integer.t
  val sixteen : Integer.t
  val thirtytwo : Integer.t
  val div : Integer.t -> Integer.t -> Integer.t
  val billion_one : Integer.t
  val hash : Integer.t -> int
  val shift_right_logical : Integer.t -> Integer.t -> Integer.t
  val two_power_64 : Integer.t
  val max_int64 : Integer.t
  val min_int64 : Integer.t
  val of_string : string -> Integer.t
  val to_string : Integer.t -> string
  val add_2_64 : Integer.t -> Integer.t
  val add_2_32 : Integer.t -> Integer.t
  val is_even : Integer.t -> bool
  val round_down_to_zero : Integer.t -> Integer.t -> Integer.t
  val power_int_positive_int : int -> int -> Integer.t
  val to_num : Integer.t -> Num.num
  val popcount : Integer.t -> int
  val pretty : ?hexa:bool -> Integer.t Pretty_utils.formatter
end