`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 : 'a 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`