sig
  type t
  val to_mpq : Mpqf.t -> Mpq.t
  val of_mpq : Mpq.t -> Mpqf.t
  val mpq : Mpqf.t -> Mpq.t
  val mpqf : Mpq.t -> Mpqf.t
  val print : Format.formatter -> Mpqf.t -> unit
  val of_string : string -> Mpqf.t
  val of_float : float -> Mpqf.t
  val of_int : int -> Mpqf.t
  val of_frac : int -> int -> Mpqf.t
  val of_mpz : Mpz.t -> Mpqf.t
  val of_mpz2 : Mpz.t -> Mpz.t -> Mpqf.t
  val of_mpzf : Mpzf.t -> Mpqf.t
  val of_mpzf2 : Mpzf.t -> Mpzf.t -> Mpqf.t
  val to_string : Mpqf.t -> string
  val to_float : Mpqf.t -> float
  val to_mpzf2 : Mpqf.t -> Mpzf.t * Mpzf.t
  val add : Mpqf.t -> Mpqf.t -> Mpqf.t
  val sub : Mpqf.t -> Mpqf.t -> Mpqf.t
  val mul : Mpqf.t -> Mpqf.t -> Mpqf.t
  val div : Mpqf.t -> Mpqf.t -> Mpqf.t
  val neg : Mpqf.t -> Mpqf.t
  val abs : Mpqf.t -> Mpqf.t
  val inv : Mpqf.t -> Mpqf.t
  val equal : Mpqf.t -> Mpqf.t -> bool
  val cmp : Mpqf.t -> Mpqf.t -> int
  val cmp_int : Mpqf.t -> int -> int
  val cmp_frac : Mpqf.t -> int -> int -> int
  val sgn : Mpqf.t -> int
  val get_num : Mpqf.t -> Mpzf.t
  val get_den : Mpqf.t -> Mpzf.t
end