sig
  type t
  val recv : OBus_transport.t -> OBus_message.t Lwt.t
  val send : OBus_transport.t -> OBus_message.t -> unit Lwt.t
  val capabilities : OBus_transport.t -> OBus_auth.capability list
  val shutdown : OBus_transport.t -> unit Lwt.t
  val make :
    ?switch:Lwt_switch.t ->
    recv:(unit -> OBus_message.t Lwt.t) ->
    send:(OBus_message.t -> unit Lwt.t) ->
    ?capabilities:OBus_auth.capability list ->
    shutdown:(unit -> unit Lwt.t) -> unit -> OBus_transport.t
  val loopback : unit -> OBus_transport.t
  val socket :
    ?switch:Lwt_switch.t ->
    ?capabilities:OBus_auth.capability list ->
    Lwt_unix.file_descr -> OBus_transport.t
  val of_addresses :
    ?switch:Lwt_switch.t ->
    ?capabilities:OBus_auth.capability list ->
    ?mechanisms:OBus_auth.Client.mechanism list ->
    OBus_address.t list -> (OBus_address.guid * OBus_transport.t) Lwt.t
end