sig   type num =     Num.num =       Int of int     | Big_int of Big_int.big_int     | Ratio of Ratio.ratio   type t = BatNum.num   val zero : BatNum.num   val one : BatNum.num   val neg : BatNum.num -> BatNum.num   val abs : BatNum.num -> BatNum.num   val add : BatNum.num -> BatNum.num -> BatNum.num   val sub : BatNum.num -> BatNum.num -> BatNum.num   val mul : BatNum.num -> BatNum.num -> BatNum.num   val div : BatNum.num -> BatNum.num -> BatNum.num   val modulo : BatNum.num -> BatNum.num -> BatNum.num   val pow : BatNum.num -> BatNum.num -> BatNum.num   val compare : BatNum.num -> BatNum.num -> int   val ord : BatNum.num -> BatNum.num -> BatOrd.order   val equal : BatNum.num -> BatNum.num -> bool   val of_int : int -> BatNum.num   val to_int : BatNum.num -> int   val of_float : float -> BatNum.num   val to_float : BatNum.num -> float   val of_string : string -> BatNum.num   val to_string : BatNum.num -> string   val of_float_string : string -> BatNum.num   val ( + ) : BatNum.num -> BatNum.num -> BatNum.num   val ( - ) : BatNum.num -> BatNum.num -> BatNum.num   val ( * ) : BatNum.num -> BatNum.num -> BatNum.num   val ( / ) : BatNum.num -> BatNum.num -> BatNum.num   val ( ** ) : BatNum.num -> BatNum.num -> BatNum.num   val max_num : BatNum.num -> BatNum.num -> BatNum.num   val min_num : BatNum.num -> BatNum.num -> BatNum.num   val quo : BatNum.num -> BatNum.num -> BatNum.num   val square : BatNum.num -> BatNum.num   val succ : BatNum.num -> BatNum.num   val pred : BatNum.num -> BatNum.num   val is_integer : BatNum.num -> bool   val round : BatNum.num -> BatNum.num   val floor : BatNum.num -> BatNum.num   val ceil : BatNum.num -> BatNum.num   val approx : BatNum.num -> BatNum.num   val sign : BatNum.num -> int   val operations : BatNum.num BatNumber.numeric   val ( =/ ) : BatNum.num -> BatNum.num -> bool   val ( </ ) : BatNum.num -> BatNum.num -> bool   val ( >/ ) : BatNum.num -> BatNum.num -> bool   val ( <=/ ) : BatNum.num -> BatNum.num -> bool   val ( >=/ ) : BatNum.num -> BatNum.num -> bool   val ( <>/ ) : BatNum.num -> BatNum.num -> bool   val eq_num : BatNum.num -> BatNum.num -> bool   val lt_num : BatNum.num -> BatNum.num -> bool   val le_num : BatNum.num -> BatNum.num -> bool   val gt_num : BatNum.num -> BatNum.num -> bool   val ge_num : BatNum.num -> BatNum.num -> bool   val approx_num_fix : int -> BatNum.num -> string   val approx_num_exp : int -> BatNum.num -> string   val nat_of_num : BatNum.num -> Nat.nat   val num_of_nat : Nat.nat -> BatNum.num   val num_of_big_int : Big_int.big_int -> BatNum.num   val big_int_of_num : BatNum.num -> Big_int.big_int   val ratio_of_num : BatNum.num -> Ratio.ratio   val num_of_ratio : Ratio.ratio -> BatNum.num   val float_of_num : BatNum.num -> float   val print : 'BatInnerIO.output -> BatNum.t -> unit   module TaggedInfix :     sig       val ( =/ ) : BatNum.num -> BatNum.num -> bool       val ( </ ) : BatNum.num -> BatNum.num -> bool       val ( >/ ) : BatNum.num -> BatNum.num -> bool       val ( <=/ ) : BatNum.num -> BatNum.num -> bool       val ( >=/ ) : BatNum.num -> BatNum.num -> bool       val ( <>/ ) : BatNum.num -> BatNum.num -> bool       val ( +/ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( -/ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( */ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( // ) : BatNum.num -> BatNum.num -> BatNum.num       val ( **/ ) : BatNum.num -> BatNum.num -> BatNum.num     end   module Infix :     sig       type bat__infix_t = t       val ( + ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( - ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( * ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( / ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( ** ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( -- ) : bat__infix_t -> bat__infix_t -> bat__infix_t BatEnum.t       val ( --- ) : bat__infix_t -> bat__infix_t -> bat__infix_t BatEnum.t       val ( =/ ) : BatNum.num -> BatNum.num -> bool       val ( </ ) : BatNum.num -> BatNum.num -> bool       val ( >/ ) : BatNum.num -> BatNum.num -> bool       val ( <=/ ) : BatNum.num -> BatNum.num -> bool       val ( >=/ ) : BatNum.num -> BatNum.num -> bool       val ( <>/ ) : BatNum.num -> BatNum.num -> bool       val ( +/ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( -/ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( */ ) : BatNum.num -> BatNum.num -> BatNum.num       val ( // ) : BatNum.num -> BatNum.num -> BatNum.num       val ( **/ ) : BatNum.num -> BatNum.num -> BatNum.num     end   module Compare :     sig       type bat__compare_t = t       val ( <> ) : bat__compare_t -> bat__compare_t -> bool       val ( >= ) : bat__compare_t -> bat__compare_t -> bool       val ( <= ) : bat__compare_t -> bat__compare_t -> bool       val ( > ) : bat__compare_t -> bat__compare_t -> bool       val ( < ) : bat__compare_t -> bat__compare_t -> bool       val ( = ) : bat__compare_t -> bat__compare_t -> bool     end   val ( +/ ) : BatNum.num -> BatNum.num -> BatNum.num   val add_num : BatNum.num -> BatNum.num -> BatNum.num   val minus_num : BatNum.num -> BatNum.num   val ( -/ ) : BatNum.num -> BatNum.num -> BatNum.num   val sub_num : BatNum.num -> BatNum.num -> BatNum.num   val ( */ ) : BatNum.num -> BatNum.num -> BatNum.num   val mult_num : BatNum.num -> BatNum.num -> BatNum.num   val square_num : BatNum.num -> BatNum.num   val ( // ) : BatNum.num -> BatNum.num -> BatNum.num   val div_num : BatNum.num -> BatNum.num -> BatNum.num   val quo_num : BatNum.num -> BatNum.num -> BatNum.num   val mod_num : BatNum.num -> BatNum.num -> BatNum.num   val ( **/ ) : BatNum.num -> BatNum.num -> BatNum.num   val power_num : BatNum.num -> BatNum.num -> BatNum.num   val abs_num : BatNum.num -> BatNum.num   val succ_num : BatNum.num -> BatNum.num   val pred_num : BatNum.num -> BatNum.num   val incr_num : BatNum.num Pervasives.ref -> unit   val decr_num : BatNum.num Pervasives.ref -> unit   val is_integer_num : BatNum.num -> bool   val integer_num : BatNum.num -> BatNum.num   val floor_num : BatNum.num -> BatNum.num   val round_num : BatNum.num -> BatNum.num   val ceiling_num : BatNum.num -> BatNum.num   val sign_num : BatNum.num -> int   val string_of_num : BatNum.num -> string   val num_of_string : string -> BatNum.num   val int_of_num : BatNum.num -> int   val num_of_int : int -> BatNum.num   val compare_num : BatNum.num -> BatNum.num -> int end