anchor.diff:  
   %% api
   
  +to_xml(Node) ->
  +    Prolog = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">",
  +    lists:flatten(xmerl:export_simple([to_xmerl(Node)], xmerl_xml, [{prolog, Prolog}])).
  +
  +to_xmerl(undefined) ->
  +    [];
   to_xmerl(List) when is_list(List) ->
       lists:map(fun(Elem) -> to_xmerl(Elem) end, List);
   
  
positive.code:      [{direction, Elem#arg.direction},
        {type, Elem#arg.type}], []}.
  
  build_introspect(Service, Path) ->
      Headers = [
  	       {?HEADER_PATH, #variant{type=object_path, value=Path}},
  	       {?HEADER_DESTINATION, #variant{type=string, value=Service}},
  
negative.code:      to_xmerl(Elem#method.args) ++ 
       Result};
  
  to_xmerl(Elem) when is_record(Elem, signal) ->
      io:format("signal ~p~n", [Elem]),
      Result =
  	case Elem#signal.result of
  	    none ->
  		[];
  	    undefined ->
  		[];
  	    Arg ->
  		[to_xmerl(Arg)]
  	end,
  %%     Fun = fun(Arg) ->
  %% 		  {arg, [{direction, Arg#
  
      {signal,
       case Elem#signal.name of
  	 undefined ->
  	     [];
  	 Name ->
  	     [{name, Name}]
       end,
       to_xmerl(Elem#signal.args) ++ 
       Result};
  
  to_xmerl(Elem) when is_record(Elem, arg) ->
      io:format("arg ~p~n", [Elem]),
      {arg, 
  