anchor.diff:       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, 
  
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: 
  %% 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);
  
  