anchor.diff:  %% @end
   %% -----------------------------------------------------------------------------
   remove(#{name := Node}, Actor, T) ->
  -    state_awmap:mutate({rmv, Node}, Actor, T).
  +    {ok, T1} = state_awmap:mutate({rmv, Node}, Actor, T),
  +    T1.
   
   
   %% -----------------------------------------------------------------------------
  
positive.code: equals_test() ->
      Name1 = 'node1@127.0.0.1',
      Node1 = node_spec(Name1),
      {ok, A} = add(Node1, a, new()),
      {ok, B} = add(Node1, b, new()),
      ?assert(not equal(A, B)),
      C = merge(A, B),
      D = merge(B, A),
  
negative.code:     Node1 = node_spec(Name),
      Node2 = node_spec(Name, {192, 168, 0, 1}),
      %% Add Z to A
      A = add(Node1, a, new()),
      %% Replicate it to C so A has 'Z'->{a, 1}
      C = A,
      %% Remove Z from A
      A2 = remove(Node1, a, A),
      %% Add Z to B, a new replica
      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
      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.
  