anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% tokenizer
  +
   tokenize(Str) when is_integer(hd(Str)) ->
     tokenize(tz(nil,Str));
   
  
positive.code: dc(Str) -> string:to_lower(Str).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% ad-hoc unit test
  unit() ->
    validate(
      [{"<!DOCTYPE bla><P a=b c=d>",
        [{exclamation,"doctype bla"},
         {tag,"p",[{"a","b"},{"c","d"}]},
         {end_tag,"p"}]},
       {"<head><B>< p><p ></z></ b></x>",
        [{tag,"head",[]},
         {tag,"b",[]},
         {tag,"p",[]},
         {tag,"p",[]}, 
         {end_tag,"p"},
         {end_tag,"p"},
         {end_tag,"b"},
         {end_tag,"head"}]},
       {"<tag catt xatt=\"\" batt>",
        [{tag,"tag",[{"catt",""},{"xatt",""},{"batt",""}]},
         {end_tag,"tag"}]},
       {"<a>...<...</a>",
        [{tag,"a",[]},
         {text,"...&lt;..."},
         {end_tag,"a"}]},
       {"<P a=b c=d>hej<!-- tobbe --><b>svejsan</b>foo</p>grump<x x=y />",
        [{tag,"p",[{"a","b"},{"c","d"}]},
         {text,"hej"},
         {comment," tobbe "},
         {tag,"b",[]},
         {text,"svejsan"},
         {end_tag,"b"},
         {text,"foo"},
         {end_tag,"p"},
         {text,"grump"},
         {tag,"x",[{"x","y"}]},
         {end_tag,"x"}]}
      ]).
  
  validate([]) -> [];
  validate([{Str,Toks}|Vs]) -> 
  
negative.code: -module('trane').
  -author('mats cronqvist').
  -export([sax/3
           , unit/0,unit/1
           , wget_parse/1,wget_print/1]).
  
  -define(ok(X),$a=<X,X=<$z;$A=<X,X=<$Z;$0=<X,X=<$9;X==$_;X==$-;X==$:).
  