sig   exception Error of string * string   type bus   type message   type pending_call   type watch   type timeout   type service = string   type interface = string   type path = string   type add_watch_fn = DBus.watch -> bool   type rm_watch_fn = DBus.watch -> unit   type toggle_watch_fn = DBus.watch -> unit   type add_timeout_fn = DBus.timeout -> bool   type rm_timeout_fn = DBus.timeout -> unit   type toggle_timeout_fn = DBus.timeout -> unit   type watch_fns =       DBus.add_watch_fn * DBus.rm_watch_fn * DBus.toggle_watch_fn option   type timeout_fns =       DBus.add_timeout_fn * DBus.rm_timeout_fn *       DBus.toggle_timeout_fn option   type error_name =       ERR_FAILED     | ERR_NO_MEMORY     | ERR_SERVICE_UNKNOWN     | ERR_NAME_HAS_NO_OWNER     | ERR_NO_REPLY     | ERR_IO_ERROR     | ERR_BAD_ADDRESS     | ERR_NOT_SUPPORTED     | ERR_LIMITS_EXCEEDED     | ERR_ACCESS_DENIED     | ERR_AUTH_FAILED     | ERR_NO_SERVER     | ERR_TIMEOUT     | ERR_NO_NETWORK     | ERR_ADDRESS_IN_USE     | ERR_DISCONNECTED     | ERR_INVALID_ARGS     | ERR_FILE_NOT_FOUND     | ERR_FILE_EXISTS     | ERR_UNKNOWN_METHOD     | ERR_TIMED_OUT     | ERR_MATCH_RULE_NOT_FOUND     | ERR_MATCH_RULE_INVALID     | ERR_SPAWN_EXEC_FAILED     | ERR_SPAWN_FORK_FAILED     | ERR_SPAWN_CHILD_EXITED     | ERR_SPAWN_CHILD_SIGNALED     | ERR_SPAWN_FAILED     | ERR_SPAWN_SETUP_FAILED     | ERR_SPAWN_CONFIG_INVALID     | ERR_SPAWN_SERVICE_INVALID     | ERR_SPAWN_SERVICE_NOT_FOUND     | ERR_SPAWN_PERMISSIONS_INVALID     | ERR_SPAWN_FILE_INVALID     | ERR_SPAWN_NO_MEMORY     | ERR_UNIX_PROCESS_ID_UNKNOWN     | ERR_INVALID_SIGNATURE     | ERR_INVALID_FILE_CONTENT     | ERR_SELINUX_SECURITY_CONTEXT_UNKNOWN     | ERR_ADT_AUDIT_DATA_UNKNOWN     | ERR_OBJECT_PATH_IN_USE   type ty_sig =       SigByte     | SigBool     | SigInt16     | SigUInt16     | SigInt32     | SigUInt32     | SigInt64     | SigUInt64     | SigDouble     | SigString     | SigObjectPath     | SigVariant     | SigArray of DBus.ty_sig     | SigStruct of DBus.ty_sig list     | SigDict of DBus.ty_sig * DBus.ty_sig   type ty_array =       Unknowns     | Bytes of char list     | Bools of bool list     | Int16s of int list     | UInt16s of int list     | Int32s of int32 list     | UInt32s of int32 list     | Int64s of int64 list     | UInt64s of int64 list     | Doubles of float list     | Strings of string list     | ObjectPaths of string list     | Structs of DBus.ty_sig list * DBus.ty list list     | Variants of DBus.ty list     | Dicts of (DBus.ty_sig * DBus.ty_sig) * (DBus.ty * DBus.ty) list     | Arrays of DBus.ty_sig * DBus.ty_array list   and ty =       Unknown     | Byte of char     | Bool of bool     | Int16 of int     | UInt16 of int     | Int32 of int32     | UInt32 of int32     | Int64 of int64     | UInt64 of int64     | Double of float     | String of string     | ObjectPath of string     | Array of DBus.ty_array     | Struct of DBus.ty list     | Variant of DBus.ty   val string_of_ty : DBus.ty -> string   val string_of_error_name : DBus.error_name -> string   module Bus :     sig       type ty = Session | System | Starter       type flags = Replace_existing       type grab_flag = AllowReplacement | ReplaceExisting | DoNotQueue       type request_reply =           PrimaryOwner         | InQueue         | Exists         | AlreadyOwner         | ReqUnknown of int       type release_reply =           Released         | NonExistent         | NotOwner         | RelUnknown of int       val get : DBus.Bus.ty -> DBus.bus       val get_private : DBus.Bus.ty -> DBus.bus       val register : DBus.bus -> unit       val set_unique_name : DBus.bus -> string -> bool       val get_unique_name : DBus.bus -> string       val request_name :         DBus.bus ->         string -> DBus.Bus.grab_flag list -> DBus.Bus.request_reply       val release_name : DBus.bus -> string -> DBus.Bus.release_reply       val has_owner : DBus.bus -> string -> bool       val add_match : DBus.bus -> string -> bool -> unit       val remove_match : DBus.bus -> string -> bool -> unit     end   module Message :     sig       type message_type =           Invalid         | Method_call         | Method_return         | Error         | Signal       type message_header = {         serial : int32;         ty : DBus.Message.message_type;         destination : DBus.service option;         path : DBus.path option;         interface : DBus.interface option;         member : string option;         error_name : DBus.error_name option;         sender : string option;       }       val string_of_message_ty : DBus.Message.message_type -> string       val create : DBus.Message.message_type -> DBus.message       val new_method_call :         DBus.service -> DBus.path -> DBus.interface -> string -> DBus.message       val new_method_return : DBus.message -> DBus.message       val new_signal : DBus.path -> DBus.interface -> string -> DBus.message       val new_error :         DBus.message -> DBus.error_name -> string -> DBus.message       val get_header : DBus.message -> DBus.Message.message_header       val append : DBus.message -> DBus.ty list -> unit       val get : DBus.message -> DBus.ty list       val marshal : DBus.message -> string       val set_path : DBus.message -> DBus.path -> unit       val set_interface : DBus.message -> DBus.interface -> unit       val set_member : DBus.message -> string -> unit       val set_error_name : DBus.message -> DBus.error_name -> unit       val set_destination : DBus.message -> DBus.service -> unit       val set_sender : DBus.message -> string -> unit       val set_reply_serial : DBus.message -> int32 -> unit       val set_auto_start : DBus.message -> bool -> unit       val has_path : DBus.message -> DBus.path -> bool       val has_interface : DBus.message -> DBus.interface -> bool       val has_member : DBus.message -> string -> bool       val has_destination : DBus.message -> DBus.service -> bool       val has_sender : DBus.message -> string -> bool       val has_signature : DBus.message -> string -> bool       val get_type : DBus.message -> DBus.Message.message_type       val get_path : DBus.message -> DBus.path option       val get_interface : DBus.message -> DBus.interface option       val get_member : DBus.message -> string option       val get_error_name : DBus.message -> DBus.error_name option       val get_destination : DBus.message -> DBus.service option       val get_sender : DBus.message -> string option       val get_signature : DBus.message -> string option       val get_serial : DBus.message -> int32       val get_reply_serial : DBus.message -> int32       val get_auto_start : DBus.message -> bool       val is_signal : DBus.message -> DBus.interface -> string -> bool       val is_method_call : DBus.message -> DBus.interface -> string -> bool       val is_error : DBus.message -> string -> bool     end   module Connection :     sig       type dispatch_status = Data_remains | Complete | Need_memory       val send : DBus.bus -> DBus.message -> int32       val send_with_reply :         DBus.bus -> DBus.message -> int -> DBus.pending_call       val send_with_reply_and_block :         DBus.bus -> DBus.message -> int -> DBus.message       val add_filter : DBus.bus -> (DBus.bus -> DBus.message -> bool) -> unit       val flush : DBus.bus -> unit       val read_write : DBus.bus -> int -> bool       val read_write_dispatch : DBus.bus -> int -> bool       val pop_message : DBus.bus -> DBus.message option       val get_dispatch_status : DBus.bus -> DBus.Connection.dispatch_status       val dispatch : DBus.bus -> DBus.Connection.dispatch_status       val get_fd : DBus.bus -> Unix.file_descr       val set_watch_functions : DBus.bus -> DBus.watch_fns -> unit       val set_timeout_functions : DBus.bus -> DBus.timeout_fns -> unit       val get_max_message_size : DBus.bus -> int       val set_max_message_size : DBus.bus -> int -> unit       val get_max_received_size : DBus.bus -> int       val set_max_received_size : DBus.bus -> int -> unit       val get_outgoing_size : DBus.bus -> int       val set_allow_anonymous : DBus.bus -> bool -> unit     end   module PendingCall :     sig       val block : DBus.pending_call -> unit       val cancel : DBus.pending_call -> unit       val get_completed : DBus.pending_call -> bool       val steal_reply : DBus.pending_call -> DBus.message     end   module Watch :     sig       type flags = Readable | Writable       val get_unix_fd : DBus.watch -> Unix.file_descr       val get_enabled : DBus.watch -> bool       val get_flags : DBus.watch -> DBus.Watch.flags list       val handle : DBus.watch -> DBus.Watch.flags list -> unit     end   module Timeout :     sig       val get_interval : DBus.timeout -> int       val get_enabled : DBus.timeout -> bool       val handle : DBus.timeout -> unit     end   module Helper :     sig       val new_message_request_name :         string -> DBus.Bus.grab_flag list -> DBus.message       val new_message_release_name : string -> DBus.message     end end