sig
  type 'a basic
  type 'a single
  type 'a sequence
  val byte : char OBus_value.C.basic
  val boolean : bool OBus_value.C.basic
  val int16 : int OBus_value.C.basic
  val int32 : int32 OBus_value.C.basic
  val int64 : int64 OBus_value.C.basic
  val uint16 : int OBus_value.C.basic
  val uint32 : int32 OBus_value.C.basic
  val uint64 : int64 OBus_value.C.basic
  val double : float OBus_value.C.basic
  val string : string OBus_value.C.basic
  val signature : OBus_value.signature OBus_value.C.basic
  val object_path : OBus_path.t OBus_value.C.basic
  val unix_fd : Unix.file_descr OBus_value.C.basic
  val basic : 'OBus_value.C.basic -> 'OBus_value.C.single
  val structure : 'OBus_value.C.sequence -> 'OBus_value.C.single
  val byte_array : string OBus_value.C.single
  val array : 'OBus_value.C.single -> 'a list OBus_value.C.single
  val dict :
    'OBus_value.C.basic ->
    'OBus_value.C.single -> ('a * 'b) list OBus_value.C.single
  val variant : OBus_value.V.single OBus_value.C.single
  val basic_byte : char OBus_value.C.single
  val basic_boolean : bool OBus_value.C.single
  val basic_int16 : int OBus_value.C.single
  val basic_int32 : int32 OBus_value.C.single
  val basic_int64 : int64 OBus_value.C.single
  val basic_uint16 : int OBus_value.C.single
  val basic_uint32 : int32 OBus_value.C.single
  val basic_uint64 : int64 OBus_value.C.single
  val basic_double : float OBus_value.C.single
  val basic_string : string OBus_value.C.single
  val basic_signature : OBus_value.signature OBus_value.C.single
  val basic_object_path : OBus_path.t OBus_value.C.single
  val basic_unix_fd : Unix.file_descr OBus_value.C.single
  val type_basic : 'OBus_value.C.basic -> OBus_value.T.basic
  val type_single : 'OBus_value.C.single -> OBus_value.T.single
  val type_sequence : 'OBus_value.C.sequence -> OBus_value.T.sequence
  val make_basic : 'OBus_value.C.basic -> '-> OBus_value.V.basic
  val make_single : 'OBus_value.C.single -> '-> OBus_value.V.single
  val make_sequence : 'OBus_value.C.sequence -> '-> OBus_value.V.sequence
  exception Signature_mismatch
  val cast_basic : 'OBus_value.C.basic -> OBus_value.V.basic -> 'a
  val cast_single : 'OBus_value.C.single -> OBus_value.V.single -> 'a
  val cast_sequence : 'OBus_value.C.sequence -> OBus_value.V.sequence -> 'a
  val dyn_basic : OBus_value.T.basic -> OBus_value.V.basic OBus_value.C.basic
  val dyn_single :
    OBus_value.T.single -> OBus_value.V.single OBus_value.C.single
  val dyn_sequence :
    OBus_value.T.sequence -> OBus_value.V.sequence OBus_value.C.sequence
  val seq0 : unit OBus_value.C.sequence
  val seq1 : 'OBus_value.C.single -> 'OBus_value.C.sequence
  val seq2 :
    'OBus_value.C.single ->
    'OBus_value.C.single -> ('a * 'b) OBus_value.C.sequence
  val seq3 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single -> ('a * 'b * 'c) OBus_value.C.sequence
  val seq4 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single -> ('a * 'b * 'c * 'd) OBus_value.C.sequence
  val seq5 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single -> ('a * 'b * 'c * 'd * 'e) OBus_value.C.sequence
  val seq6 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f) OBus_value.C.sequence
  val seq7 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g) OBus_value.C.sequence
  val seq8 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h) OBus_value.C.sequence
  val seq9 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i) OBus_value.C.sequence
  val seq10 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j) OBus_value.C.sequence
  val seq11 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k)
    OBus_value.C.sequence
  val seq12 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k * 'l)
    OBus_value.C.sequence
  val seq13 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k * 'l * 'm)
    OBus_value.C.sequence
  val seq14 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k * 'l * 'm * 'n)
    OBus_value.C.sequence
  val seq15 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k * 'l * 'm * 'n * 'o)
    OBus_value.C.sequence
  val seq16 :
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    'OBus_value.C.single ->
    ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i * 'j * 'k * 'l * 'm * 'n *
     'o * 'p)
    OBus_value.C.sequence
end