anchor.diff:      erl_syntax:tuple(Vars).
   
   labels_to_underscores(Term) ->
  +    labels_to_underscores(Term, []).
  +
  +labels_to_underscores(Term, Except) ->
       erl_syntax_lib:map(
         fun(T) ->
                 try
                     Label = erl_syntax:atom_value(T),
                     true = is_label(Label),
  -                  erl_syntax:underscore()
  +		  case lists:member(Label, Except) of
  +		      true ->
  +			  label_to_var(Label);
  +		      false ->
  +			  erl_syntax:underscore()
  +		  end
                 catch _:_ ->
                         T
                 end
  
positive.code: 			       EncAcc;
  			  true ->
  			       [erl_syntax:clause(
  				  [erl_syntax:match_expr(NewResult, Var)],
  				  none,
  				  [make_function_call(
  				     make_enc_fun_name([Tag]),
  				     [Var, XMLNSAttrs])])|EncAcc]
  		       end,
  		       if IgnoreXMLNS or is_list(XMLNS) or IsDuplicated ->
  			       NSAcc;
  			  true ->
  			       [erl_syntax:clause(
  				  [NewResult], none,
  				  [abstract(XMLNS)])|NSAcc]
  		       end,
  		       [Result|Seen]}
  
negative.code:                        (#ref{name = RefName}) ->
                              RefElem = get_elem_by_ref(RefName, AllElems),
                              XMLNS = RefElem#elem.xmlns,
                              XMLNSAttrs = case is_my_top_xmlns(XMLNS, TopXMLNS) of
  					     true ->
                                                   erl_syntax:list([]);
  					     {false, NS} ->
                                                   erl_syntax:list(
                                                     [erl_syntax:tuple(
                                                        [abstract(<<"xmlns">>),
                                                         abstract(NS)])])
                                           end,
                              Pattern =
                                  if length(Refs) > 1 ->
  