sig
  type t
  val of_float : float -> t
  val to_float : t -> float
  val of_string : string -> t
  val to_string : t -> string
  val ( + ) : Int_math.T.t -> Int_math.T.t -> Int_math.T.t
  val ( - ) : Int_math.T.t -> Int_math.T.t -> Int_math.T.t
  val ( * ) : Int_math.T.t -> Int_math.T.t -> Int_math.T.t
  val ( / ) : Int_math.T.t -> Int_math.T.t -> Int_math.T.t
  val ( ~- ) : Int_math.T.t -> Int_math.T.t
  val ( >= ) : t -> t -> bool
  val ( <= ) : t -> t -> bool
  val ( = ) : t -> t -> bool
  val ( > ) : t -> t -> bool
  val ( < ) : t -> t -> bool
  val ( <> ) : t -> t -> bool
  val abs : Int_math.T.t -> Int_math.T.t
  val neg : Int_math.T.t -> Int_math.T.t
  val zero : Int_math.T.t
  val of_int_exn : int -> Int_math.T.t
  val rem : Int_math.T.t -> Int_math.T.t -> Int_math.T.t
end