anchor.diff:      put(top, ErlTop),
       put(exit_code, 0),
       CachedFiles = maps:from_list([{m2a,M2A}|Files]),
  -    [validate_links(File,CachedFiles) || File <- Files],
  +    [validate_links(File,CachedFiles) ||
  +        {{App,_},_} = File <- Files,
  +        lists:member(App,["edoc","wx","eunit","syntax_tools"]) =:= false],
       erlang:halt(get(exit_code)).
   
   parse_file(Filename) ->
   %    io:format("Parse: ~p~n",[Filename]),
       case xmerl_sax_parser:file(Filename, [skip_external_dtd,
                                             {event_fun,fun handle_event/3},
  -                                          {event_state,#{ funcs => [],
  +                                          {event_state,#{ markers => [],
  +                                                          funcs => [],
                                                             datatypes => []}}]) of
           {ok, Res, _} ->
   %            [io:format("~p~n",[Res]) || maps:get(filename,Res) == {"erts","erl_tracer"}],
  -            {maps:get(filename,Res), maps:remove(filename,Res)}
  +            {maps:get(filename,Res), Res}
       end.
   
   handle_event(startDocument, _Line, State) ->
  
positive.code:             halt(1)
      end.
  
  validate_type(_Line, "seeerl","erlref") ->
      ok;
  validate_type(_Line, "seemfa","erlref") ->
      ok;
  validate_type(_Line, "seetype","erlref") ->
      ok;
  validate_type(_Line, "seeguide","chapter") ->
      ok;
  validate_type(_Line, "seeguide","index") ->
      ok;
  validate_type(_Line, "seefile","fileref") ->
      ok;
  validate_type(_Line, "seeapp","appref") ->
      ok;
  validate_type(_Line, "seeapp","index") ->
      ok;
  validate_type(_Line, "seecom","comref") ->
      ok;
  validate_type(_Line, "seecref","cref") ->
      ok;
  validate_type(Line, From, To) ->
      fail(Line, "Invalid <~s> pointing to a <~s> file",[From,To]).
  
  path2app(Path) ->
      case lists:reverse(string:lexemes(Path,"/")) of
  
negative.code:             validate_type(Line,LinkType,read_link(Line, ParsedLink, CachedFiles))
      end;
  validate_link(Filename, "seeerl" = LinkType, Line, Link, CachedFiles) ->
      ParsedLink = parse_link(Filename, maps:get(m2a,CachedFiles), Link),
      TargetInfo = read_link(Line, ParsedLink, CachedFiles),
      validate_type(Line,LinkType,TargetInfo),
      validate_marker(Line,ParsedLink,TargetInfo);
  validate_link(Filename, LinkType, Line, Link, CachedFiles) ->
      ParsedLink = parse_link(Filename, maps:new(), Link),
      TargetInfo = read_link(Line, ParsedLink, CachedFiles),
      validate_type(Line,LinkType,TargetInfo),
      validate_marker(Line,ParsedLink,TargetInfo).
  
  parse_link({SelfApp,Filename},Mod2App,Link) ->
      {AppMod, Marker} =
  