    sig
      type num = Int of int | Big_int of Big_int.big_int | Ratio of Ratio.ratio
      val ( +/ ) : Num.num -> Num.num -> Num.num
      val add_num : Num.num -> Num.num -> Num.num
      val minus_num : Num.num -> Num.num
      val ( -/ ) : Num.num -> Num.num -> Num.num
      val sub_num : Num.num -> Num.num -> Num.num
      val ( */ ) : Num.num -> Num.num -> Num.num
      val mult_num : Num.num -> Num.num -> Num.num
      val square_num : Num.num -> Num.num
      val ( // ) : Num.num -> Num.num -> Num.num
      val div_num : Num.num -> Num.num -> Num.num
      val quo_num : Num.num -> Num.num -> Num.num
      val mod_num : Num.num -> Num.num -> Num.num
      val ( **/ ) : Num.num -> Num.num -> Num.num
      val power_num : Num.num -> Num.num -> Num.num
      val abs_num : Num.num -> Num.num
      val succ_num : Num.num -> Num.num
      val pred_num : Num.num -> Num.num
      val incr_num : Num.num Pervasives.ref -> unit
      val decr_num : Num.num Pervasives.ref -> unit
      val is_integer_num : Num.num -> bool
      val integer_num : Num.num -> Num.num
      val floor_num : Num.num -> Num.num
      val round_num : Num.num -> Num.num
      val ceiling_num : Num.num -> Num.num
      val sign_num : Num.num -> int
      val ( =/ ) : Num.num -> Num.num -> bool
      val ( </ ) : Num.num -> Num.num -> bool
      val ( >/ ) : Num.num -> Num.num -> bool
      val ( <=/ ) : Num.num -> Num.num -> bool
      val ( >=/ ) : Num.num -> Num.num -> bool
      val ( <>/ ) : Num.num -> Num.num -> bool
      val eq_num : Num.num -> Num.num -> bool
      val lt_num : Num.num -> Num.num -> bool
      val le_num : Num.num -> Num.num -> bool
      val gt_num : Num.num -> Num.num -> bool
      val ge_num : Num.num -> Num.num -> bool
      val compare_num : Num.num -> Num.num -> int
      val max_num : Num.num -> Num.num -> Num.num
      val min_num : Num.num -> Num.num -> Num.num
      val string_of_num : Num.num -> string
      val approx_num_fix : int -> Num.num -> string
      val approx_num_exp : int -> Num.num -> string
      val num_of_string : string -> Num.num
      val int_of_num : Num.num -> int
      val num_of_int : int -> Num.num
      val nat_of_num : Num.num -> Nat.nat
      val num_of_nat : Nat.nat -> Num.num
      val num_of_big_int : Big_int.big_int -> Num.num
      val big_int_of_num : Num.num -> Big_int.big_int
      val ratio_of_num : Num.num -> Ratio.ratio
      val num_of_ratio : Ratio.ratio -> Num.num
      val float_of_num : Num.num -> float
    end