anchor.diff:  %%% Attention: There is a case that checks the size of this tuple below!!
                    }.
   
  --type replies() :: {
  +-type gen_replies() :: {
                       non_neg_integer(), %% number of newest replies
                       non_neg_integer(), %% number of acks
                       non_neg_integer(), %% number of denies
  
positive.code:     %% {next_period, ...}
  
      %% create local state for the request id
      Entry = entry_new_read(qread, ReqId, Key, DataType, Client, period(State),
                             ReadFilter, RetriggerAfter),
  %%    log_entry(qread, Entry),
      %% store local state of the request
      set_entry(Entry, tablename(State)),
  
negative.code: 
  %% TODO: add support for *consistent* quorum by counting the number of
  %% same-round-number replies
  
  %% rr_replies are received after executing a read without round number
  %% to receive the current highest read round. If the replies are a
  %% consistent quorum, the read value can be directly delivered, otherwise
  %% a read with the highest round number is executed.
  -record(rr_replies, {reply_count :: non_neg_integer(),            %% total number of replies recieved
                       newest_r_reply_count :: non_neg_integer(),   %% number of replies with current highest read round
                       highest_r_round :: pr:pr(),                  %% highest read round received in replies
                       newest_w_reply_count ::non_neg_integer(),    %% number of replies with current highest write round
                       highest_w_round :: pr:pr(),                  %% highest write round recieved in replies
                       read_value :: any()                          %% value received in the reply with highest round
                      }).
  
  -type replies() :: gen_replies() | #rr_replies{}.
  
  -type entry() :: {any(), %% ReqId
                    any(), %% debug field
  