anchor.diff:  
   -spec read(pid_groups:pidname(), comm:erl_local_pid(), ?RT:key(), module(), crdt:query_fun()) -> ok.
   read(CSeqPidName, Client, Key, DataType, QueryFun) ->
  -    start_request(CSeqPidName, {req_start, {read, strong, Client, Key, DataType, QueryFun, none}}).
  +    case ?READ_BATCHING of
  +        true ->
  +            start_request(CSeqPidName, {add_to_read_batch, Client, Key, DataType, QueryFun});
  +        false ->
  +            start_request(CSeqPidName, {req_start, {read, strong, Client, Key, DataType, QueryFun, none}})
  +    end.
   
   -spec read_eventual(pid_groups:pidname(), comm:erl_local_pid(), ?RT:key(), module(), crdt:query_fun()) -> ok.
   read_eventual(CSeqPidName, Client, Key, DataType, QueryFun) ->
  
positive.code: 
  -spec inform_client(read_done, entry(), any()) -> ok.
  inform_client(read_done, Entry, QueryResult) ->
      comm:send_local(entry_client(Entry), {read_done, QueryResult}).
  
  -spec add_write_reply(#w_replies{}) -> {boolean(), #w_replies{}}.
  add_write_reply(Replies) ->
  
negative.code: -spec round_inc(pr:pr(), any()) -> pr:pr().
  round_inc(Round, ID) ->
      pr:new(pr:get_r(Round)+1, ID).
  
  -spec next_read_batching_interval() -> non_neg_integer().
  next_read_batching_interval() ->
      Div = randoms:rand_uniform(0, ?READ_BATCHING_INTERVAL_DIVERGENCE*2 + 1),
      ?READ_BATCHING_INTERVAL - ?READ_BATCHING_INTERVAL_DIVERGENCE + Div.
  