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