Module Caml_int64

type t;
let mk: lo:int => hi:int => t;
let succ: t => t;
let min_int: t;
let max_int: t;
let one: t;
let zero: t;
let neg_one: t;
let of_int32: int => t;
let to_int32: t => int;
let add: t => t => t;
let neg: t => t;
let sub: t => t => t;
let lsl_: t => int => t;
let lsr_: t => int => t;
let asr_: t => int => t;
let is_zero: t => bool;
let mul: t => t => t;
let xor: t => t => t;
let or_: t => t => t;
let and_: t => t => t;
let equal_null: t => Js.null(t) => bool;
let equal_undefined: t => Js.undefined(t) => bool;
let equal_nullable: t => Js.nullable(t) => bool;
let to_float: t => float;
let of_float: float => t;
let div: t => t => t;
let mod_: t => t => t;
let compare: t => t => int;
let float_of_bits: t => float;
let bits_of_float: float => t;

bits_of_float fl it is undefined behaivor when f is NaN

let unsafe_to_int64: t => int64;
let unsafe_of_int64: int64 => t;
let div_mod: int64 => int64 => (int64, int64);
let to_hex: int64 => string;
let discard_sign: int64 => int64;
let to_string: int64 => string;