anchor.diff:  
       Client = entry_client(ReadEntry),
       Key = entry_key(ReadEntry),
  +    DataType = entry_datatype(ReadEntry),
       ReadFilter = entry_filters(ReadEntry),
       RetriggerAfter = entry_retrigger(ReadEntry) - entry_period(ReadEntry),
   
       gen_component:post_op(
  -      {qread, Client, Key, ReadFilter, RetriggerAfter},
  +      {qread, Client, Key, DataType, ReadFilter, RetriggerAfter},
         State);
   
   on({qread_write_through_done, ReadEntry, Filtering,
  
positive.code:                          incdelay -> erlang:max(1, (entry_retrigger(Entry) - entry_period(Entry)) + 1);
                           noincdelay -> entry_retrigger(Entry)
                       end,
      ?ASSERT(erlang:tuple_size(Entry) =:= 13),
      if is_tuple(element(12, Entry)) -> %% write request
             {qwrite, entry_client(Entry),
              entry_key(Entry), entry_filters(Entry),
              entry_val(Entry),
              RetriggerDelay};
         true -> %% read request
             {qread, entry_client(Entry),
              entry_key(Entry), entry_filters(Entry),
              RetriggerDelay}
      end.
  
  
negative.code: entry_retrigger(Entry)            -> element(4, Entry).
  -spec entry_key(entry())          -> any().
  entry_key(Entry)                  -> element(5, Entry).
  -spec entry_datatype(entry())     -> module().
  entry_datatype(Entry)             -> element(6, Entry).
  -spec entry_client(entry())       -> comm:erl_local_pid().
  entry_client(Entry)               -> element(7, Entry).
  -spec entry_my_round(entry())     -> pr:pr().
  entry_my_round(Entry)             -> element(8, Entry).
  -spec entry_set_my_round(entry(), pr:pr()) -> entry().
  entry_set_my_round(Entry, Round)  -> setelement(8, Entry, Round).
  -spec entry_num_acks(entry())     -> non_neg_integer().
  entry_num_acks(Entry)             -> element(9, Entry).
  -spec entry_inc_num_acks(entry()) -> entry().
  entry_inc_num_acks(Entry) -> setelement(9, Entry, element(9, Entry) + 1).
  -spec entry_set_num_acks(entry(), non_neg_integer()) -> entry().
  entry_set_num_acks(Entry, Num)    -> setelement(9, Entry, Num).
  -spec entry_num_denies(entry())   -> non_neg_integer().
  entry_num_denies(Entry)           -> element(10, Entry).
  -spec entry_inc_num_denies(entry()) -> entry().
  entry_inc_num_denies(Entry) -> setelement(10, Entry, element(10, Entry) + 1).
  -spec entry_set_num_denies(entry(), non_neg_integer()) -> entry().
  entry_set_num_denies(Entry, Val) -> setelement(10, Entry, Val).
  -spec entry_latest_seen(entry())  -> pr:pr().
  entry_latest_seen(Entry)          -> element(11, Entry).
  -spec entry_set_latest_seen(entry(), pr:pr()) -> entry().
  entry_set_latest_seen(Entry, Round) -> setelement(11, Entry, Round).
  -spec entry_val(entry())           -> any().
  entry_val(Entry)                   -> element(12, Entry).
  -spec entry_set_val(entry(), any()) -> entry().
  entry_set_val(Entry, Val)          -> setelement(12, Entry, Val).
  -spec entry_filters(entry())       -> any().
  entry_filters(Entry)               -> element(13, Entry).
  -spec entry_set_num_newest(entry(), non_neg_integer())  -> entry().
  entry_set_num_newest(Entry, Val)        -> setelement(14, Entry, Val).
  -spec entry_inc_num_newest(entry()) -> entry().
  entry_inc_num_newest(Entry)        -> setelement(14, Entry, 1 + element(14, Entry)).
  -spec entry_num_newest(entry())    -> non_neg_integer().
  entry_num_newest(Entry)            -> element(14, Entry).
  
  -spec add_read_reply(entry(), dht_node_state:db_selector(),
                       pr:pr(), client_value(),
  