sig   type t = { num : Z.t; den : Z.t; }   val make : Z.t -> Z.t -> Q.t   val zero : Q.t   val one : Q.t   val minus_one : Q.t   val inf : Q.t   val minus_inf : Q.t   val undef : Q.t   val of_bigint : Z.t -> Q.t   val of_int : int -> Q.t   val of_int32 : int32 -> Q.t   val of_int64 : int64 -> Q.t   val of_nativeint : nativeint -> Q.t   val of_ints : int -> int -> Q.t   val of_float : float -> Q.t   val of_string : string -> Q.t   val num : Q.t -> Z.t   val den : Q.t -> Z.t   type kind = ZERO | INF | MINF | UNDEF | NZERO   val classify : Q.t -> Q.kind   val is_real : Q.t -> bool   val sign : Q.t -> int   val compare : Q.t -> Q.t -> int   val equal : Q.t -> Q.t -> bool   val min : Q.t -> Q.t -> Q.t   val max : Q.t -> Q.t -> Q.t   val leq : Q.t -> Q.t -> bool   val geq : Q.t -> Q.t -> bool   val lt : Q.t -> Q.t -> bool   val gt : Q.t -> Q.t -> bool   val to_bigint : Q.t -> Z.t   val to_int : Q.t -> int   val to_int32 : Q.t -> int32   val to_int64 : Q.t -> int64   val to_nativeint : Q.t -> nativeint   val to_string : Q.t -> string   val to_float : Q.t -> float   val neg : Q.t -> Q.t   val abs : Q.t -> Q.t   val add : Q.t -> Q.t -> Q.t   val sub : Q.t -> Q.t -> Q.t   val mul : Q.t -> Q.t -> Q.t   val inv : Q.t -> Q.t   val div : Q.t -> Q.t -> Q.t   val mul_2exp : Q.t -> int -> Q.t   val div_2exp : Q.t -> int -> Q.t   val print : Q.t -> unit   val output : Pervasives.out_channel -> Q.t -> unit   val sprint : unit -> Q.t -> string   val bprint : Buffer.t -> Q.t -> unit   val pp_print : Format.formatter -> Q.t -> unit   val ( ~- ) : Q.t -> Q.t   val ( ~+ ) : Q.t -> Q.t   val ( + ) : Q.t -> Q.t -> Q.t   val ( - ) : Q.t -> Q.t -> Q.t   val ( * ) : Q.t -> Q.t -> Q.t   val ( / ) : Q.t -> Q.t -> Q.t   val ( lsl ) : Q.t -> int -> Q.t   val ( asr ) : Q.t -> int -> Q.t   val ( ~$ ) : int -> Q.t   val ( // ) : int -> int -> Q.t   val ( ~$$ ) : Z.t -> Q.t   val ( /// ) : Z.t -> Z.t -> Q.t   val ( = ) : Q.t -> Q.t -> bool   val ( < ) : Q.t -> Q.t -> bool   val ( > ) : Q.t -> Q.t -> bool   val ( <= ) : Q.t -> Q.t -> bool   val ( >= ) : Q.t -> Q.t -> bool   val ( <> ) : Q.t -> Q.t -> bool end