anchor.diff:                       read_value :: any()                        %% value returned from the round_request
                       }).
   
  --type replies() :: gen_replies() | #rr_replies{}.
  +%% Aggregator for read replies.
  +%% If qread phase 1 has not found a consistent quorum, a read with an explicit
  +%% round number is startet. The replies are aggregated in this record.
  +-record(r_replies, {ack_count :: non_neg_integer(),             %% number of acks reveiced
  +                    deny_count :: non_neg_integer(),            %% number of denies received
  +                    highest_write_count :: non_neg_integer(),   %% number of replies with current highest write round
  +                    highest_write_round :: pr:pr(),             %% highest write round received
  +                    read_value :: any()                         %% value returned frm read request
  +                   }).
  +
  +-type replies() :: gen_replies() | #rr_replies{} | #r_replies{}.
   
   -type entry() :: {any(), %% ReqId
                     any(), %% debug field
  
positive.code:         end,
      {Result, R4, R4#rr_replies.highest_read_round}.
  
  -spec add_read_reply(replies(), dht_node_state:db_selector(),
                       pr:pr(),  client_value(),  pr:pr(),
                       pr:pr(), module(), any(), Consistency::boolean())
                      -> {Done::boolean() | write_through, replies(), pr:pr()}.
  add_read_reply(Replies, _DBSelector, AssignedRound, Val, SeenWriteRound,
                 CurrentRound, Datatype, Filters, _Cons) ->
      %% either decide on a majority of consistent replies, than we can
  
negative.code:                     true ->
                          %% consistent quorum
                          Collected = R3#rr_replies.read_value,
                          ReadValue = ?REDUNDANCY:get_read_value(Collected, ReadFilter),
                          T1 = R3#rr_replies{read_value=ReadValue},
  
                          {consistent, T1};
  