anchor.diff:  parse(Contacts) when is_list(Contacts) ->
       %% throw({unparseable, Str}) if parsing failed
       case catch [parse_star(Contact) || Contact <- Contacts] of
  -	%% parse error - detected by yxa code or Erlang match operations
   	{error, Reason} ->
  +	    %% parse error - detected by yxa code or Erlang match operations
   	    {unparseable, Reason};
   	{'EXIT', Reason} ->
   	    {unparseable, Reason};
   
  -	%% parsed data
   	ResLists ->
  +	    %% parsed data
   	    lists:append(ResLists)
       end.
   
  
positive.code: 	    end
      end.
  
  
  %% input = data after first ";"
  %% return: contact_param record()
  %%
  parse_params([]) ->
      contact_param:to_norm([]);
  parse_params(ParamsStr) ->
      Params = string:tokens(ParamsStr,";"),
      NameValList = [parse_param(Param) || Param <- Params],
      contact_param:to_norm(NameValList).
  
  %% return: {NameStr, ValueStr} | throw()
  parse_param(ParamStr) ->
  
negative.code: 
  new(DisplayName, UrlStr, Params) when is_list(DisplayName); DisplayName == none,
  				      is_list(UrlStr), is_list(Params) ->
      #contact{display_name = DisplayName,
  	     urlstr = UrlStr,
  	     contact_param = contact_param:to_norm(Params)
  	    }.
  
  
  %%--------------------------------------------------------------------
  