anchor.diff:  
   %% @doc Connect to an object, and introspect it.
   %% @end
  --spec start_link(Conn :: dbus_connection(), Service :: dbus_name(), Path :: binary()) -> 
  +-spec start_link(Conn :: dbus_connection(), Service :: dbus_name(), Path :: binary()) ->
               {ok, dbus_proxy()} | {error, term()}.
   start_link(Conn, Service, Path) when is_binary(Path) ->
       gen_server:start_link(?MODULE, [Conn, Service, Path], []).
  
positive.code: 
  do_handle_signal(#signal_handler{mfa={Fun, Ctx}}=Handler, Acc, Sender, Iface, Signal, Path, Args) ->
      try Fun(Sender, Iface, Signal, Path, Args, Ctx)
      catch Cls:Err -> 
              ?error("Error dispatching signal to ~p/6: ~p:~p", [Fun, Cls, Err])
      end,
      [ Handler | Acc ];
  
negative.code: 
  %% @doc Connect to a particular signal on a particular children object
  %% @end
  -spec connect_signal(Proxy :: dbus_proxy(),
               Service :: dbus_name(),
               IfaceName :: dbus_name(),
               SignalName :: dbus_name(),
               Path :: binary(),
               MFA :: handler()) ->
                  ok | {error, term()}.
  connect_signal(Proxy, Service, IfaceName, SignalName, Path, MFA) ->
      gen_server:call(Proxy, {connect_signal, Service, IfaceName, SignalName, Path, MFA}).
  