sig
  external q_initialize : unit -> unit = "_mlgmp_q_initialize"
  type t
  external create : unit -> Gmp41.Q.t = "_mlgmp_q_create"
  external from_z : Gmp41.Z.t -> Gmp41.Q.t = "_mlgmp_q_from_z"
  external from_si : int -> int -> Gmp41.Q.t = "_mlgmp_q_from_si"
  external from_ints : int -> int -> Gmp41.Q.t = "_mlgmp_q_from_si"
  external from_float : float -> Gmp41.Q.t = "_mlgmp_q_from_float"
  val from_int : int -> Gmp41.Q.t
  external float_from : Gmp41.Q.t -> float = "_mlgmp_q_to_float"
  external to_float : Gmp41.Q.t -> float = "_mlgmp_q_to_float"
  external add : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_add"
  external sub : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_sub"
  external mul : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_mul"
  external div : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_div"
  external neg : Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_neg"
  external inv : Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_inv"
  external get_num : Gmp41.Q.t -> Gmp41.Z.t = "_mlgmp_q_get_num"
  external get_den : Gmp41.Q.t -> Gmp41.Z.t = "_mlgmp_q_get_den"
  external cmp : Gmp41.Q.t -> Gmp41.Q.t -> int = "_mlgmp_q_cmp"
  external compare : Gmp41.Q.t -> Gmp41.Q.t -> int = "_mlgmp_q_cmp"
  external cmp_ui : Gmp41.Q.t -> int -> int -> int = "_mlgmp_q_cmp_ui"
  external sgn : Gmp41.Q.t -> int = "_mlgmp_q_sgn"
  val zero : Gmp41.Q.t
  val is_zero : Gmp41.Q.t -> bool
  val from_zs : Gmp41.Z.t -> Gmp41.Z.t -> Gmp41.Q.t
  val equal : Gmp41.Q.t -> Gmp41.Q.t -> bool
  val output : Pervasives.out_channel -> Gmp41.Q.t -> unit
  val to_string : Gmp41.Q.t -> string
  val sprintf : unit -> Gmp41.Q.t -> string
  module Infixes :
    sig
      external ( +/ ) : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_add"
      external ( -/ ) : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_sub"
      external ( */ ) : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_mul"
      external ( // ) : Gmp41.Q.t -> Gmp41.Q.t -> Gmp41.Q.t = "_mlgmp_q_div"
      val ( <! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
      val ( <=! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
      val ( =! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
      val ( >=! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
      val ( >! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
      val ( <>! ) : Gmp41.Q.t -> Gmp41.Q.t -> bool
    end
end