sig
  type ratio = Ratio.ratio
  val null_denominator : Reins.Types.Ratio.ratio -> bool
  val numerator_ratio :
    Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val denominator_ratio :
    Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val sign_ratio : Reins.Types.Ratio.ratio -> int
  val normalize_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val cautious_normalize_ratio :
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val cautious_normalize_ratio_when_printing :
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val create_ratio :
    Reins.Types.Big_int.big_int ->
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio
  val create_normalized_ratio :
    Reins.Types.Big_int.big_int ->
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio
  val is_normalized_ratio : Reins.Types.Ratio.ratio -> bool
  val report_sign_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Big_int.big_int -> Reins.Types.Big_int.big_int
  val abs_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val is_integer_ratio : Reins.Types.Ratio.ratio -> bool
  val add_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val minus_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val add_int_ratio :
    int -> Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val add_big_int_ratio :
    Reins.Types.Big_int.big_int ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val sub_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val mult_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val mult_int_ratio :
    int -> Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val mult_big_int_ratio :
    Reins.Types.Big_int.big_int ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val square_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val inverse_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val div_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val integer_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val floor_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val round_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val ceiling_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val eq_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> bool
  val compare_ratio :
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> int
  val lt_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> bool
  val le_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> bool
  val gt_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> bool
  val ge_ratio : Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio -> bool
  val max_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val min_ratio :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val eq_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> bool
  val compare_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> int
  val lt_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> bool
  val le_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> bool
  val gt_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> bool
  val ge_big_int_ratio :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio -> bool
  val int_of_ratio : Reins.Types.Ratio.ratio -> int
  val ratio_of_int : int -> Reins.Types.Ratio.ratio
  val ratio_of_nat : Nat.nat -> Reins.Types.Ratio.ratio
  val nat_of_ratio : Reins.Types.Ratio.ratio -> Nat.nat
  val ratio_of_big_int :
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio
  val big_int_of_ratio :
    Reins.Types.Ratio.ratio -> Reins.Types.Big_int.big_int
  val div_int_ratio :
    int -> Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val div_ratio_int :
    Reins.Types.Ratio.ratio -> int -> Reins.Types.Ratio.ratio
  val div_big_int_ratio :
    Reins.Types.Big_int.big_int ->
    Reins.Types.Ratio.ratio -> Reins.Types.Ratio.ratio
  val div_ratio_big_int :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio
  val approx_ratio_fix : int -> Reins.Types.Ratio.ratio -> string
  val approx_ratio_exp : int -> Reins.Types.Ratio.ratio -> string
  val float_of_rational_string : Reins.Types.Ratio.ratio -> string
  val string_of_ratio : Reins.Types.Ratio.ratio -> string
  val ratio_of_string : string -> Reins.Types.Ratio.ratio
  val float_of_ratio : Reins.Types.Ratio.ratio -> float
  val power_ratio_positive_int :
    Reins.Types.Ratio.ratio -> int -> Reins.Types.Ratio.ratio
  val power_ratio_positive_big_int :
    Reins.Types.Ratio.ratio ->
    Reins.Types.Big_int.big_int -> Reins.Types.Ratio.ratio
  val equal : '-> '-> bool
  val hash : '-> int
  val gen : ?size:'-> Random.State.t -> Ratio.ratio
end