anchor.diff:  
   
   
  --spec writable(entry(), pr:pr(), pr:pr()) -> {ok, entry(),
  -                                     NextWriteRound :: pr:pr()} |
  -                                    {dropped,
  -                                     NewerSeenRound :: pr:pr()}.
  -writable(Entry, InRound, OldWriteRound) ->
  +-spec writable(entry(), pr:pr(), pr:pr(), prbr:write_filter()) ->
  +          {ok, entry(),NextWriteRound :: pr:pr()} |
  +          {dropped, NewerSeenRound :: pr:pr()}.
  +writable(Entry, InRound, OldWriteRound, WF) ->
       LatestSeenRead = entry_r_read(Entry),
       LatestSeenWrite = entry_r_write(Entry),
       InRoundR = pr:get_r(InRound),
  
positive.code:             {dropped, util:max(LatestSeenRead, LatestSeenWrite)}
      end.
  
  -spec get_wti_key(any())-> any().
  get_wti_key(Key) -> {Key, wti}.
  
  
negative.code:             _ ->
                  pr:set_wf(InRound, {WriteFilter, PassedToUpdate, Value})
          end,
      _ = case writable(KeyEntry, RoundForWrite, OldWriteRound, WriteFilter) of
              {ok, NewKeyEntry, NextWriteRound} ->
                  {NewVal, Ret} =
                      case erlang:function_exported(DataType, prbr_write_handler, 5) of
  