anchor.diff:      [erl_syntax:function(erl_syntax:atom("encode"), [XmlElClause|EncClauses]),
        erl_syntax:function(erl_syntax:atom("get_ns"), NSClauses)].
   
  -make_printer(TaggedSpecs) ->
  +make_printer(TaggedSpecs, PredefRecords) ->
       PassClause = erl_syntax:clause(
                      [erl_syntax:underscore(),
                       erl_syntax:underscore()],
  
positive.code:                       true = is_atom(H),
                        false = is_label(H),
                        [Tag|_] = dict:fetch(H, RecNames),
                        true = lists:all(fun is_label/1, T),
                        [erl_syntax:clause(
                           [erl_syntax:atom(H), abstract(length(T))],
                           none,
                           [erl_syntax:list(
                              [erl_syntax:atom(
                                 label_to_record_field(F)) || F <- T])])
                         |Acc]
                    catch _:_ ->
                            Acc
  
negative.code: 		      fun(Form) ->
  			      erl_syntax:get_ann(Form)
  		      end, lists:reverse(AttrForms)),
      PredefRecords = get_predefined_records(AttrForms),
      Printer = make_printer(TaggedElems, PredefRecords),
      NewAST = Decoders ++ Encoders ++ AuxFuns ++
          Printer ++ FunForms ++ AST,
      Records = make_records(Types, TaggedElems, PredefRecords, Opts),
      TypeSpecs = make_typespecs(ModName, Types, Opts),
      Exports = erl_syntax:attribute(
  