anchor.diff:  			       end,
                     EncodeResult = labels_to_underscores(Result),
   		  NSResult = labels_to_underscores(Result, [XMLNSLabel]),
  +		  TagResult = labels_to_underscores(Result),
                     Var = label_to_var(prepare_label(undefined, Name)),
   		  HasXMLNSAttr = XMLNSLabel /= undefined,
                     try
  
positive.code: 			  {RecAcc, ResAcc}
  		  end
  	  end, {dict:new(), dict:new()}, TaggedSpecs),
      NilNSClause = erl_syntax:clause(
  		    [?AST(_)], none, [?AST(<<"">>)]),
      {EncClauses, NSClauses, _} =
          lists:foldl(
            fun({Tag, #elem{name = Name, xmlns = XMLNS,
  			  result = Result, attrs = Attrs}},
  	      {EncAcc, NSAcc, Seen}) ->
  		  XMLNSLabel = case lists:keyfind(<<"xmlns">>, #attr.name, Attrs) of
  				   #attr{label = L, name = N} ->
  				       prepare_label(L, N);
  
negative.code: 				  [NSResult], none,
  				  [abstract(XMLNS)])|NSAcc]
  		       end,
  		       if AlreadySeen ->
  			       TagAcc;
  			  true ->
  			       [erl_syntax:clause(
  				  [TagResult], none,
  				  [abstract(Name)])|TagAcc]
  		       end,
  		       [Result|Seen]}
                    catch _:_ ->
                            {EncAcc, NSAcc, TagAcc, Seen}
                    end
            end, {[], [], [], []}, TaggedSpecs),
      XmlElClause = erl_syntax:clause(
  		    [?AST({xmlel, _, _, _} = El)],
  		    none,
  		    [?AST(El)]),
      [erl_syntax:function(?AST(encode), [XmlElClause|EncClauses]),
       erl_syntax:function(?AST(get_name), TagClauses),
       erl_syntax:function(?AST(get_ns), NSClauses)].
  
  make_printer(TaggedSpecs, PredefRecords) ->
  