anchor.diff:         tab=Tab
         };
   new_iterator(FullPrefix, KeyMatch, Tab, {[First], Cont}) ->
  +    %% key/value iterator
       #metadata_iterator{
          prefix=FullPrefix,
          match=KeyMatch,
  
positive.code:     ets:delete(Iterators, Ref).
  
  open_iterator(undefined, KeyMatch) ->
      new_iterator(undefined, KeyMatch, ?ETS);
  open_iterator(FullPrefix, KeyMatch) ->
      case ets_tab(FullPrefix) of
          undefined -> empty_iterator(FullPrefix, KeyMatch, undefined);
          Tab -> new_iterator(FullPrefix, KeyMatch, Tab)
      end.
  
  next_iterator(It=#metadata_iterator{done=true}) ->
      It;
  next_iterator(It=#metadata_iterator{prefix=undefined,match=undefined,tab=Tab,pos=Pos}) ->
      next_iterator(It, ets:next(Tab, Pos));
  next_iterator(It=#metadata_iterator{prefix=undefined,pos=Pos}) ->
      next_iterator(It, ets:select(Pos));
  next_iterator(It=#metadata_iterator{pos=Pos}) ->
      next_iterator(It, ets:match_object(Pos)).
  
  next_iterator(Ref, #state{iterators=Iterators}) when is_reference(Ref) ->
      case ets:lookup(Iterators, Ref) of
          [] -> ok;
          [{Ref, It}] ->
  
negative.code:        tab=Tab
        };
  new_iterator(undefined, Prefix, Tab, {[First], Cont}) ->
      %% sub-prefix iterator
      #metadata_iterator{
         prefix=undefined,
         match=Prefix,
  