anchor.diff:      Nodename = 'node1@127.0.0.1',
       Node = node_spec(Nodename),
   
  -    {ok, A} = add(Node, a, new()),
  -    {ok, B} = add(Node, b, new()),
  -    {ok, B2} = remove(Node, b, B),
  +    A = add(Node, a, new()),
  +    B = add(Node, b, new()),
  +    B2 = remove(Node, b, B),
   
       C = A,
   
  -    {ok, C3} = remove(Node, c, C),
  +    C3 = remove(Node, c, C),
   
       ?assertEqual(
           merge(A, merge(B2, C3)),
  
positive.code:     Node1 = node_spec(Name),
      Node2 = node_spec(Name, {192, 168, 0, 1}),
      %% Add Z to A
      {ok, A} = add(Node1, a, new()),
      %% Replicate it to C so A has 'Z'->{a, 1}
      C = A,
      %% Remove Z from A
      {ok, A2} = remove(Node1, a, A),
      %% Add Z to B, a new replica
      {ok, B} = add(Node2, b, new()),
      %%  Replicate B to A, so now A has a Z, the one with a Dot of
      %%  {b,1} and clock of [{a, 1}, {b, 1}]
      A3 = merge(B, A2),
      %% Remove the 'Z' from B replica
      {ok, B2} = remove(Node2, b, B),
      %% Both C and A have a 'Z', but when they merge, there should be
      %% no 'Z' as C's has been removed by A and A's has been removed by
      %% C.
  
negative.code: %% @end
  %% -----------------------------------------------------------------------------
  remove(#{name := Node}, Actor, T) ->
      {ok, T1} = state_awmap:mutate({rmv, Node}, Actor, T),
      T1.
  
  
  %% -----------------------------------------------------------------------------
  