`sig type t = int val zero : int val one : int val minus_one : int external neg : int -> int = "%negint" external add : int -> int -> int = "%addint" external ( + ) : int -> int -> int = "%addint" external sub : int -> int -> int = "%subint" external ( - ) : int -> int -> int = "%subint" external mul : int -> int -> int = "%mulint" external ( * ) : int -> int -> int = "%mulint" external div : int -> int -> int = "%divint" external ( / ) : int -> int -> int = "%divint" external rem : int -> int -> int = "%modint" external modulo : int -> int -> int = "%modint" val pow : int -> int -> int val ( ** ) : int -> int -> int val ( <> ) : int -> int -> bool val ( > ) : int -> int -> bool val ( < ) : int -> int -> bool val ( >= ) : int -> int -> bool val ( <= ) : int -> int -> bool val ( = ) : int -> int -> bool val min_num : int val max_num : int external succ : int -> int = "%succint" external pred : int -> int = "%predint" val abs : int -> int external of_float : float -> int = "%intoffloat" external to_float : int -> float = "%floatofint" val of_string : string -> int val to_string : int -> string val min : int -> int -> int val max : int -> int -> int val mid : int -> int -> int val popcount : int -> int val copysign : int -> int -> int val popcount_sparse : int -> int val operations : int BatNumber.numeric val ( -- ) : BatInt.t -> BatInt.t -> BatInt.t BatEnum.t val ( --- ) : BatInt.t -> BatInt.t -> BatInt.t BatEnum.t external of_int : int -> int = "%identity" external to_int : int -> int = "%identity" 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 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 print : 'a BatInnerIO.output -> int -> unit val print_hex : 'a BatInnerIO.output -> int -> unit val compare : BatInt.t -> BatInt.t -> int val equal : BatInt.t -> BatInt.t -> bool val ord : BatInt.t -> BatInt.t -> BatOrd.order module Safe_int : sig type t = int val zero : BatInt.Safe_int.t val one : BatInt.Safe_int.t val minus_one : BatInt.Safe_int.t val neg : BatInt.Safe_int.t -> BatInt.Safe_int.t val add : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val ( + ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val sub : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val ( - ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val mul : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val ( * ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t external div : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t = "%divint" external ( / ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t = "%divint" external rem : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t = "%modint" external modulo : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t = "%modint" val pow : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val ( ** ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatInt.Safe_int.t val ( <> ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ( > ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ( < ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ( >= ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ( <= ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ( = ) : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val max_num : BatInt.Safe_int.t val min_num : BatInt.Safe_int.t val succ : BatInt.Safe_int.t -> BatInt.Safe_int.t val pred : BatInt.Safe_int.t -> BatInt.Safe_int.t val abs : BatInt.Safe_int.t -> BatInt.Safe_int.t external of_float : float -> BatInt.Safe_int.t = "%intoffloat" external to_float : BatInt.Safe_int.t -> float = "%floatofint" val of_string : string -> BatInt.Safe_int.t val to_string : BatInt.Safe_int.t -> string val operations : BatInt.Safe_int.t BatNumber.numeric external of_int : int -> BatInt.Safe_int.t = "%identity" external to_int : BatInt.Safe_int.t -> int = "%identity" 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 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 print : 'a BatInnerIO.output -> BatInt.Safe_int.t -> unit val compare : BatInt.Safe_int.t -> BatInt.Safe_int.t -> int val equal : BatInt.Safe_int.t -> BatInt.Safe_int.t -> bool val ord : BatInt.Safe_int.t -> BatInt.Safe_int.t -> BatOrd.order end end`