anchor.diff:      ?assertMatch([{ok, 1, _}, {ok, 3, _}], L5).
   
   %% This test creates two RGAs and performs updates, checking they reach
  -%% the same final state after the two updates are aplied in both replicas.
  +%% the same final state after the four updates are aplied in both replicas.
   concurrent_updates_in_two_replicas_test() ->
       R1_0 = new(),
       R2_0 = new(),
  
positive.code: %% first call `generate_downstream/3', to get the downstream version of the
  %% operation, and then call `update/2'.
  %%
  %% It provides two operations: insert, which adds an element to the RGA, and delete,
  %% which removes an element from the RGA.
  %%
  %% This implementation is based on the paper cited below.
  
negative.code:     Rga.
  
  %% @doc This method takes in an rga operation and an rga to perform the operation.
  %% It returns either the added Vertex and the new rga in case of an addRight, and the new rga in the case of a remove.
  -spec update(rga_downstream_op(), rga()) -> rga_result().
  update({addRight, RightVertex, NewVertex}, Rga) ->
      recursive_insert(RightVertex, NewVertex, Rga, []);
  