anchor.diff:                    fun ((any(), any(), any()) -> {boolean(), any()}), %% CC (Content Check)
                     client_value(), pr:pr(),
                     client_value() | prbr_bottom) -> ok.
  -qwrite_fast(CSeqPidName, Client, Key, Module, CC, Value, Round, OldVal) ->
  +qwrite_fast(CSeqPidName, Client, Key, DataType, CC, Value, Round, OldVal) ->
       RF = fun prbr:noop_read_filter/1,
       WF = fun prbr:noop_write_filter/3,
  -    qwrite_fast(CSeqPidName, Client, Key, Module, RF, CC, WF, Value, Round, OldVal).
  +    qwrite_fast(CSeqPidName, Client, Key, DataType, RF, CC, WF, Value, Round, OldVal).
   
   -spec qwrite(pid_groups:pidname(),
                comm:erl_local_pid(),
  
positive.code: 
      Client = entry_client(ReadEntry),
      Key = entry_key(ReadEntry),
      ReadFilter = entry_filters(ReadEntry),
      RetriggerAfter = entry_retrigger(ReadEntry) - entry_period(ReadEntry),
  
      gen_component:post_op(
        {qread, Client, Key, ReadFilter, RetriggerAfter},
        State);
  
  on({qread_write_through_done, ReadEntry, Filtering,
  
negative.code: %%              fun ((PassedInfo, WriteValue) -> {CustomData, ReturnValue}),
  %%              %%module(),
               client_value()) -> ok.
  qwrite(CSeqPidName, Client, Key, DataType, ReadFilter, ContentCheck,
         WriteFilter, Value) ->
      Pid = pid_groups:find_a(CSeqPidName),
      comm:send_local(Pid, {qwrite, Client, Key,
                            DataType, {ReadFilter, ContentCheck, WriteFilter},
                            Value, _RetriggerAfter = 20}),
      %% the process will reply to the client directly
      ok.
  