sig
  type t
  type uint128 = Uint128.t
  val zero : Uint128.uint128
  val one : Uint128.uint128
  val add : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val sub : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val mul : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val div : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val rem : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val succ : Uint128.uint128 -> Uint128.uint128
  val pred : Uint128.uint128 -> Uint128.uint128
  val max_int : Uint128.uint128
  val min_int : Uint128.uint128
  val logand : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val logor : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val logxor : Uint128.uint128 -> Uint128.uint128 -> Uint128.uint128
  val lognot : Uint128.uint128 -> Uint128.uint128
  val shift_left : Uint128.uint128 -> int -> Uint128.uint128
  val shift_right : Uint128.uint128 -> int -> Uint128.uint128
  val shift_right_logical : Uint128.uint128 -> int -> Uint128.uint128
  val of_int : int -> Uint128.uint128
  val to_int : Uint128.uint128 -> int
  val of_float : float -> Uint128.uint128
  val to_float : Uint128.uint128 -> float
  val of_int32 : int32 -> Uint128.uint128
  val to_int32 : Uint128.uint128 -> int32
  val of_int64 : int64 -> Uint128.uint128
  val to_int64 : Uint128.uint128 -> int64
  val of_nativeint : nativeint -> Uint128.uint128
  val to_nativeint : Uint128.uint128 -> nativeint
  val of_string : string -> Uint128.uint128
  val to_string : Uint128.uint128 -> string
  val to_string_bin : Uint128.uint128 -> string
  val to_string_oct : Uint128.uint128 -> string
  val to_string_hex : Uint128.uint128 -> string
  val compare : Uint128.t -> Uint128.t -> int
  val printer : Format.formatter -> Uint128.uint128 -> unit
  val printer_bin : Format.formatter -> Uint128.uint128 -> unit
  val printer_oct : Format.formatter -> Uint128.uint128 -> unit
  val printer_hex : Format.formatter -> Uint128.uint128 -> unit
end