sig
  type t
  type uint16 = Uint16.t
  val zero : Uint16.uint16
  val one : Uint16.uint16
  val add : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val sub : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val mul : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val div : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val rem : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val succ : Uint16.uint16 -> Uint16.uint16
  val pred : Uint16.uint16 -> Uint16.uint16
  val max_int : Uint16.uint16
  val min_int : Uint16.uint16
  val logand : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val logor : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val logxor : Uint16.uint16 -> Uint16.uint16 -> Uint16.uint16
  val lognot : Uint16.uint16 -> Uint16.uint16
  val shift_left : Uint16.uint16 -> int -> Uint16.uint16
  val shift_right : Uint16.uint16 -> int -> Uint16.uint16
  val of_int : int -> Uint16.uint16
  val to_int : Uint16.uint16 -> int
  val of_float : float -> Uint16.uint16
  val to_float : Uint16.uint16 -> float
  val of_int32 : int32 -> Uint16.uint16
  val to_int32 : Uint16.uint16 -> int32
  val of_string : string -> Uint16.uint16
  val to_string : Uint16.uint16 -> string
  val to_string_bin : Uint16.uint16 -> string
  val to_string_oct : Uint16.uint16 -> string
  val to_string_hex : Uint16.uint16 -> string
  val bits_of_float : float -> Uint16.uint16
  val float_of_bits : Uint16.uint16 -> float
  val compare : Uint16.t -> Uint16.t -> int
  val printer : Stdlib.Format.formatter -> Uint16.uint16 -> unit
  val printer_bin : Stdlib.Format.formatter -> Uint16.uint16 -> unit
  val printer_oct : Stdlib.Format.formatter -> Uint16.uint16 -> unit
  val printer_hex : Stdlib.Format.formatter -> Uint16.uint16 -> unit
end