anchor.diff:                    end, Forms),
       FileName = filename:basename(Path),
       ModName = filename:rootname(FileName),
  -    #state{ast = AST} = lists:foldl(
  -                          fun({Tag, Spec}, State) ->
  -                                  NewState = spec_to_AST(Spec, [Tag], State),
  -                                  NewState#state{labels = []}
  -                          end, #state{all_specs = TaggedSpecs,
  -                                      known_functions = KnownFuns},
  -                          TaggedSpecs),
  +    #state{ast = AST, records = RecordsAST} =
  +        lists:foldl(
  +          fun({Tag, Spec}, State) ->
  +                  NewState = spec_to_AST(Spec, [Tag], State),
  +                  NewState#state{labels = []}
  +          end, #state{all_specs = TaggedSpecs,
  +                      known_functions = KnownFuns},
  +          TaggedSpecs),
       Decoder = make_xmlns_decoder(TaggedSpecs),
       NewAST = [Decoder|Forms ++ AST],
       Exports = erl_syntax:attribute(
  
positive.code:             erl_syntax:variable([$_, $_, string:to_upper(H)|T]);
          [$$|[H|T]] ->
              erl_syntax:variable([string:to_upper(H)|T])
      end.
  
  have_special_label(Ss, sub_els) ->
  
negative.code: -define(warn(F, Args), io:format("* xml_gen warning: " ++ F ++ "~n", Args)).
  
  -record(state, {labels = [], ast = [], all_specs = [],
                  known_functions = [], silent = false,
                  records = []}).
  
  %%====================================================================
  %% Compiler API
  