anchor.diff:    validate(tests()).
   
   validate([]) -> [];
  -validate([{Str,Toks}|Vs]) -> 
  +validate([{Str,Toks}|Vs]) ->
     [try Toks = sax(Str,fun(T,A)-> A++[T] end, []),Str
      catch C:R -> {C,R,erlang:get_stacktrace(),Str}
      end|validate(Vs)].
  
positive.code: parse(Str,Fun,Acc) ->
    parse({Fun,Acc,[]},tokenize(Str)).
  
  parse({Fun,Acc,Stack}=State,[{Token,T}]) -> 
    case Token of
      eof -> eof(unroll(Stack,{Fun,Acc,[]}));
      _   -> parse(maybe_emit(Token,State),tokenize(T))
  
negative.code:     [{tag,"head",[]},
       {tag,"b",[]},
       {tag,"p",[]},
       {tag,"p",[]},
       {end_tag,"p"},
       {end_tag,"p"},
       {end_tag,"b"},
  