sig
  module type UintSig =
    sig
      type t
      val name : string
      val fmt : string
      val zero : Uint.Str_conv_sig.UintSig.t
      val max_int : Uint.Str_conv_sig.UintSig.t
      val bits : int
      val of_int : int -> Uint.Str_conv_sig.UintSig.t
      val to_int : Uint.Str_conv_sig.UintSig.t -> int
      val add :
        Uint.Str_conv_sig.UintSig.t ->
        Uint.Str_conv_sig.UintSig.t -> Uint.Str_conv_sig.UintSig.t
      val mul :
        Uint.Str_conv_sig.UintSig.t ->
        Uint.Str_conv_sig.UintSig.t -> Uint.Str_conv_sig.UintSig.t
      val divmod :
        Uint.Str_conv_sig.UintSig.t ->
        Uint.Str_conv_sig.UintSig.t ->
        Uint.Str_conv_sig.UintSig.t * Uint.Str_conv_sig.UintSig.t
    end
  module type S =
    sig
      type t
      val of_string : string -> Uint.Str_conv_sig.S.t
      val to_string : Uint.Str_conv_sig.S.t -> string
      val to_string_bin : Uint.Str_conv_sig.S.t -> string
      val to_string_oct : Uint.Str_conv_sig.S.t -> string
      val to_string_hex : Uint.Str_conv_sig.S.t -> string
      val printer : Format.formatter -> Uint.Str_conv_sig.S.t -> unit
      val printer_bin : Format.formatter -> Uint.Str_conv_sig.S.t -> unit
      val printer_oct : Format.formatter -> Uint.Str_conv_sig.S.t -> unit
      val printer_hex : Format.formatter -> Uint.Str_conv_sig.S.t -> unit
    end
  module Make :
    functor (U : UintSig->
      sig
        type t = U.t
        val of_string : string -> t
        val to_string : t -> string
        val to_string_bin : t -> string
        val to_string_oct : t -> string
        val to_string_hex : t -> string
        val printer : Format.formatter -> t -> unit
        val printer_bin : Format.formatter -> t -> unit
        val printer_oct : Format.formatter -> t -> unit
        val printer_hex : Format.formatter -> t -> unit
      end
end