anchor.diff:              end
       end.
   
  -%% turns out, due to weirdness, it is possible to have two dots with
  -%% the same id and counter, but different timestamps (backup and
  -%% restore, riak_kv#679). In that case, it is possible to drop both
  -%% dots, as both are dominted, but not equal. Here we strip the
  -%% timestamp component when comparing dots.  This is bad as it _knows_
  -%% about the internal structure of the vclock entry.
  +%% Store a pure dot and it's contents as a possible candidate to be
  +%% dropped.
   %%
   %% @see is_drop_candidate/2
  -add_drop_candidate({Id, {Cnt, _TS}}, Contents,  Dict) ->
  -    orddict:store({Id, Cnt}, Contents, Dict).
  -
  -%% compare dots by Id and Counter alone, so making equal "skewed dots"
  -is_drop_candidate({Id, {Cnt, _TS}}, Dict) ->
  -    orddict:is_key({Id, Cnt}, Dict).
  -
  -%% fetch a drop candidate by it's dot
  -get_drop_candidate({Id, {Cnt, _TS}}, Dict) ->
  -    orddict:fetch({Id, Cnt}, Dict).
  +add_drop_candidate(Dot, Contents,  Dict) ->
  +    orddict:store(Dot, Contents, Dict).
  +
  +%% Check if a pure dot is already present as a drop candidate.
  +is_drop_candidate(Dot, Dict) ->
  +    orddict:is_key(Dot, Dict).
  +
  +%% fetch a drop candidate by it's pure dot
  +get_drop_candidate(Dot, Dict) ->
  +    orddict:fetch(Dot, Dict).
   
   %% @private Transform a `merge_acc()' to a list of `r_content()'. The
   %% merge accumulator contains a list of non CRDT (opaque) sibling
  
positive.code:                     %% value that is the result of a PUT that
                      %% reconciled this sibling value, we can therefore
                      %% (potentialy, see above) drop this value.
                      MergeAcc#merge_acc{drop=add_drop_candidate(Dot, C0, Drop)};
                  {false, _} ->
                      %% The other object's vclock does not contain (or
                      %% dominate) this sibling's `dot'. That means this
  
negative.code: fold_contents({r_content, Dict, Value}=C0, MergeAcc, Clock) ->
      #merge_acc{drop=Drop, keep=Keep, crdt=CRDT, error=Error} = MergeAcc,
      case get_dot(Dict) of
          {ok, {Dot, PureDot}} ->
              case {vclock:descends_dot(Clock, Dot), is_drop_candidate(PureDot, Drop)} of
                  {true, true} ->
                      %% When the exact same dot is present in both
                      %% objects siblings, we keep that value. Without
  