sig
  type t
  val compare : BigInt.t -> BigInt.t -> int
  val zero : BigInt.t
  val one : BigInt.t
  val of_int : int -> BigInt.t
  val succ : BigInt.t -> BigInt.t
  val pred : BigInt.t -> BigInt.t
  val add_int : int -> BigInt.t -> BigInt.t
  val mul_int : int -> BigInt.t -> BigInt.t
  val add : BigInt.t -> BigInt.t -> BigInt.t
  val sub : BigInt.t -> BigInt.t -> BigInt.t
  val mul : BigInt.t -> BigInt.t -> BigInt.t
  val minus : BigInt.t -> BigInt.t
  val sign : BigInt.t -> int
  val eq : BigInt.t -> BigInt.t -> bool
  val lt : BigInt.t -> BigInt.t -> bool
  val gt : BigInt.t -> BigInt.t -> bool
  val le : BigInt.t -> BigInt.t -> bool
  val ge : BigInt.t -> BigInt.t -> bool
  val euclidean_div_mod : BigInt.t -> BigInt.t -> BigInt.t * BigInt.t
  val euclidean_div : BigInt.t -> BigInt.t -> BigInt.t
  val euclidean_mod : BigInt.t -> BigInt.t -> BigInt.t
  val computer_div_mod : BigInt.t -> BigInt.t -> BigInt.t * BigInt.t
  val computer_div : BigInt.t -> BigInt.t -> BigInt.t
  val computer_mod : BigInt.t -> BigInt.t -> BigInt.t
  val min : BigInt.t -> BigInt.t -> BigInt.t
  val max : BigInt.t -> BigInt.t -> BigInt.t
  val abs : BigInt.t -> BigInt.t
  val num_digits : BigInt.t -> int
  val pow_int_pos : int -> int -> BigInt.t
  val pow_int_pos_bigint : int -> BigInt.t -> BigInt.t
  val of_string : string -> BigInt.t
  val to_string : BigInt.t -> string
  val to_int : BigInt.t -> int
  val is_int : BigInt.t -> bool
end