sig
  type t = int
  val zero : t
  val one : t
  val minus_one : t
  val neg : t -> t
  val add : t -> t -> t
  val ( + ) : t -> t -> t
  val sub : t -> t -> t
  val ( - ) : t -> t -> t
  val mul : t -> t -> t
  val ( * ) : t -> t -> t
  external div : t -> t -> t = "%divint"
  external ( / ) : t -> t -> t = "%divint"
  external rem : t -> t -> t = "%modint"
  external modulo : t -> t -> t = "%modint"
  val pow : t -> t -> t
  val ( ** ) : t -> 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 min_num : t
  val max_num : t
  val succ : t -> t
  val pred : t -> t
  val abs : t -> t
  external of_float : float -> t = "%intoffloat"
  external to_float : t -> float = "%floatofint"
  val of_string : string -> t
  val to_string : t -> string
  val compare : t -> t -> int
  val operations : t Extlib.Number.numeric
  external of_int : int -> t = "%identity"
  external to_int : t -> int = "%identity"
  val t_of_sexp : Sexplib.Sexp.t -> t
  val sexp_of_t : t -> Sexplib.Sexp.t
  val print : 'Extlib.InnerIO.output -> t -> unit
end