anchor.diff:       case Bin of
          <<_:Off/binary>> ->
            {cont,?tail_0()};
  -       <<_:Off/binary,0,R:4/binary,Rs/binary>> ->
  -         exit([{trailing_bytes,byte_size(Rs)+4},{tail,R}]);
  -       <<_:Off/binary,0,R/binary>> ->
  -         exit([{trailing_bytes,byte_size(R)},{tail,R}])
  +       <<_:Off/binary,0,I:4/integer,Rs/binary>> ->
  +         ?log([{trailing_bytes,byte_size(Rs)+4},{needed,I}]),
  +         {cont,?tail_0()};
  +       <<_:Off/binary,R/binary>> ->
  +         ?log([{garbarge_at_eof,byte_size(R)}]),
  +         {cont,?tail_0()}
        end;
        (?tail(Bin,Off)) -> 
         case Bin of
  
positive.code: term_f(Fun) ->
    fun(TermBin,O) ->
        try Fun(to_term(TermBin),O)
        catch {parsing_failed,R} -> ?log({parse_error,R,TermBin}),O
        end
    end.
    
  
negative.code: -define(tail_eof(Bin,Offset), {Bin,Offset,eof}).
  -define(state(Acc,Tail),      {Acc,Tail}).
  
  -define(log(T),
          error_logger:info_report(
            [process_info(self(),current_function),{line,?LINE}]++T)).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% the API
  