sig
  type t
  val add : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val sub : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val mul : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val div : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val rem : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val max_int : Unsigned.S.t
  val logand : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val logor : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val logxor : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val shift_left : Unsigned.S.t -> int -> Unsigned.S.t
  val shift_right : Unsigned.S.t -> int -> Unsigned.S.t
  val of_int : int -> Unsigned.S.t
  val to_int : Unsigned.S.t -> int
  val of_int64 : int64 -> Unsigned.S.t
  val to_int64 : Unsigned.S.t -> int64
  val of_string : string -> Unsigned.S.t
  val to_string : Unsigned.S.t -> string
  val zero : Unsigned.S.t
  val one : Unsigned.S.t
  val lognot : Unsigned.S.t -> Unsigned.S.t
  val succ : Unsigned.S.t -> Unsigned.S.t
  val pred : Unsigned.S.t -> Unsigned.S.t
  val compare : Unsigned.S.t -> Unsigned.S.t -> int
  val max : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  val min : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
  module Infix :
    sig
      val ( + ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( - ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( * ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( / ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( mod ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( land ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( lor ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( lxor ) : Unsigned.S.t -> Unsigned.S.t -> Unsigned.S.t
      val ( lsl ) : Unsigned.S.t -> int -> Unsigned.S.t
      val ( lsr ) : Unsigned.S.t -> int -> Unsigned.S.t
    end
end