anchor.diff:  term(Filename,Fun,Acc) ->
    fold(Filename,Fun,Acc,[term]).
   
  +zet(Filename,Fun,Acc) ->
  + fold(Filename,Fun,Acc,[zet]).
  +
   fold(Filename,Fun,Acc,Opts) ->
  -  Type = take_first(Opts,[line,sax,xml,term]),
  +  Type = take_first(Opts,[line,sax,xml,term,zet]),
     case file:open(Filename, [read, raw, binary]) of
       {ok, FD} -> 
         try fold(read(FD),FD,wrap(Fun,Type),chunker(Type),?state(Acc,?tail_0()))
  
positive.code:          , xml/3
           , term/3
           , line/3
           , fold/4]).
  
  -define(BLOCK, 1048576).
  
negative.code:   ?state(Acc,?tail_eof(Bin,Off)).
  
  -define(is_empty(X), X=:=<<>>; X=:=<<"\n">>; X=:=<<"\n\r">>).
  chunker(zet) ->
    fun(?tail_eof(Bin,Off)) ->
       case Bin of
         <<_:Off/binary>> ->
           {cont,?tail_0()};
         <<_:Off/binary,R:4/binary,Rs/binary>> ->
           exit([{trailing_bytes,byte_size(Rs)+4},{tail,R}]);
         <<_:Off/binary,R/binary>> ->
           exit([{trailing_bytes,byte_size(R)},{tail,R}])
       end;
       (?tail(Bin,Off)) -> 
        case Bin of
          <<_:Off/binary,S:32/integer,B:S/binary,_/binary>> ->
            {ok,binary_to_term(B),?tail(Bin,Off+4+S)};
          <<_:Off/binary,R/binary>> ->
            {cont,R}
        end
    end;
  chunker(Type) ->
    {ok,Patt} = chunker_patt(Type),
    fun(?tail_eof(Bin,Off)) ->
  