sig
  type 'a tt = 'Mpz.tt
  type t = Mpz.f Mpzf.tt
  val _mpz : Mpzf.t -> Mpz.t
  val _mpzf : Mpz.t -> Mpzf.t
  val to_mpz : Mpzf.t -> 'Mpz.tt
  val of_mpz : 'Mpz.tt -> Mpzf.t
  val print : Format.formatter -> 'Mpzf.tt -> unit
  val of_string : string -> Mpzf.t
  val of_float : float -> Mpzf.t
  val of_int : int -> Mpzf.t
  val to_string : 'Mpzf.tt -> string
  val to_float : 'Mpzf.tt -> float
  val add : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val add_int : 'Mpzf.tt -> int -> Mpzf.t
  val sub : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val sub_int : 'Mpzf.tt -> int -> Mpzf.t
  val mul : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val mul_int : 'Mpzf.tt -> int -> Mpzf.t
  val cdiv_q : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val cdiv_r : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val cdiv_qr : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t * Mpzf.t
  val fdiv_q : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val fdiv_r : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val fdiv_qr : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t * Mpzf.t
  val tdiv_q : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val tdiv_r : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val tdiv_qr : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t * Mpzf.t
  val divexact : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val gmod : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val gcd : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val lcm : 'Mpzf.tt -> 'Mpzf.tt -> Mpzf.t
  val neg : 'Mpzf.tt -> Mpzf.t
  val abs : 'Mpzf.tt -> Mpzf.t
  val cmp : 'Mpzf.tt -> 'Mpzf.tt -> int
  val cmp_int : 'Mpzf.tt -> int -> int
  val sgn : 'Mpzf.tt -> int
end