anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% tokenizer
  +
   tokenize(Str) when is_integer(hd(Str)) ->
     tokenize(tz(nil,Str));
   
  
positive.code: tokenize({text,Str,Token}) ->
    case ff(text,Str) of
      {{tag,""},EStr,{text,Txt}} -> 
        try [Token,{text,Txt},tokenize({{tag,""},EStr})]
        catch _:_ -> tokenize({text,Txt++"&lt;"++EStr,Token})
        end;
      {{text,Str},"",eof} -> [Token,{eof,{text,Str}}]
    end;
  tokenize({TZ,Str,Token}) ->
    {Token,{TZ,Str}}.
  
  tz(nil,"<"++Str)                        -> {{tag,""},ws(Str)};
  tz(nil,[_|Str])                         -> {nil,Str};
  
negative.code: dc(Str) -> string:to_lower(Str).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Parsing real pages
  wget(Url) ->
    inets:start(),
    {ok, {_Rc, _Hdrs, Body}} = http:request(get, {Url, []}, [], []),
    Body.
  
  wget_parse(Url) ->
    sax(wget(Url),fun(T,A)-> A++[T] end, []).
  
  wget_print(Url) ->
    io:fwrite("~s~n",[wget(Url)]).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% ad-hoc unit test
  unit(N) when is_integer(N) ->
    validate([lists:nth(N,tests())]).
  
  unit() ->
    validate(tests()).
  
  validate([]) -> [];
  validate([{Str,Toks}|Vs]) -> 
  