sig
  type rat
  val cons_rat : string * string -> Rat.rat
  val add_rat : Rat.rat * Rat.rat -> Rat.rat
  val sub_rat : Rat.rat * Rat.rat -> Rat.rat
  val mult_rat : Rat.rat * Rat.rat -> Rat.rat
  val div_rat : Rat.rat * Rat.rat -> Rat.rat
  val opp_rat : Rat.rat -> Rat.rat
  val reciproc_rat : Rat.rat -> Rat.rat
  val abs_rat : Rat.rat -> Rat.rat
  val eq_rat : Rat.rat * Rat.rat -> bool
  val gt_rat : Rat.rat * Rat.rat -> bool
  val ge_rat : Rat.rat * Rat.rat -> bool
  val lt_rat : Rat.rat * Rat.rat -> bool
  val le_rat : Rat.rat * Rat.rat -> bool
  val string_of_rat : Rat.rat -> string
  val string_approx_rat : Rat.rat * int -> string
  val print_rat : Rat.rat -> unit
end