sig
  type t
  type tref
  val name : unit -> string
  val add : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val sub : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val mul : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val quo : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val modulo : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val quomod :
    Numerix.Int_type.t ->
    Numerix.Int_type.t -> Numerix.Int_type.t * Numerix.Int_type.t
  val abs : Numerix.Int_type.t -> Numerix.Int_type.t
  val neg : Numerix.Int_type.t -> Numerix.Int_type.t
  val sqr : Numerix.Int_type.t -> Numerix.Int_type.t
  val sqrt : Numerix.Int_type.t -> Numerix.Int_type.t
  val powmod :
    Numerix.Int_type.t ->
    Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val add_in :
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val sub_in :
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val mul_in :
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val quo_in :
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val quomod_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val abs_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
  val neg_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
  val sqr_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
  val sqrt_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
  val powmod_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val make_ref : Numerix.Int_type.t -> Numerix.Int_type.tref
  val copy_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
  val copy_out : Numerix.Int_type.tref -> Numerix.Int_type.t
  val look : Numerix.Int_type.tref -> Numerix.Int_type.t
  val add_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val sub_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val mul_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val quo_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val mod_1 : Numerix.Int_type.t -> int -> int
  val quomod_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t * int
  val pow : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val root : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val fact : int -> Numerix.Int_type.t
  val shr : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val shl : Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val split :
    Numerix.Int_type.t -> int -> Numerix.Int_type.t * Numerix.Int_type.t
  val join :
    Numerix.Int_type.t -> Numerix.Int_type.t -> int -> Numerix.Int_type.t
  val add_1_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val sub_1_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val mul_1_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val quomod_1_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> int
  val pow_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val root_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val fact_in : Numerix.Int_type.tref -> int -> unit
  val shl_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val shr_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val split_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
  val join_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.t -> Numerix.Int_type.t -> int -> unit
  val gcd : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val gcd_ex :
    Numerix.Int_type.t ->
    Numerix.Int_type.t ->
    Numerix.Int_type.t * Numerix.Int_type.t * Numerix.Int_type.t
  val cfrac :
    Numerix.Int_type.t ->
    Numerix.Int_type.t ->
    Numerix.Int_type.t * Numerix.Int_type.t * Numerix.Int_type.t *
    Numerix.Int_type.t * Numerix.Int_type.t
  val gcd_in :
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val gcd_ex_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val cfrac_in :
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref ->
    Numerix.Int_type.tref -> Numerix.Int_type.t -> Numerix.Int_type.t -> unit
  val eq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val neq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val inf : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val infeq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val sup : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val supeq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
  val cmp : Numerix.Int_type.t -> Numerix.Int_type.t -> int
  val eq_1 : Numerix.Int_type.t -> int -> bool
  val neq_1 : Numerix.Int_type.t -> int -> bool
  val inf_1 : Numerix.Int_type.t -> int -> bool
  val infeq_1 : Numerix.Int_type.t -> int -> bool
  val sup_1 : Numerix.Int_type.t -> int -> bool
  val supeq_1 : Numerix.Int_type.t -> int -> bool
  val cmp_1 : Numerix.Int_type.t -> int -> int
  val sgn : Numerix.Int_type.t -> int
  val max : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val min : Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
  val nbits : Numerix.Int_type.t -> int
  val lowbits : Numerix.Int_type.t -> int
  val highbits : Numerix.Int_type.t -> int
  val nth_bit : Numerix.Int_type.t -> int -> bool
  val nth_word : Numerix.Int_type.t -> int -> int
  val random_bits : int -> Numerix.Int_type.t
  val of_int : int -> Numerix.Int_type.t
  val int_of : Numerix.Int_type.t -> int
  val string_of : Numerix.Int_type.t -> string
  val of_string : string -> Numerix.Int_type.t
  val toplevel_print : Numerix.Int_type.t -> unit
end