anchor.diff:      State#state{pending=Pending, connections=Connections}.
   
   sync_internal_join(#{name := Name} = Node,
  -              From,      
  +              From,
                 #state{pending=Pending0,
                        sync_joins=SyncJoins0,
                        connections=Connections0,
  
positive.code:     CurrentMembership = [N || #{name := N} <- sets:to_list(?SET:query(Membership))],
      % lager:info("CurrentMembership: ~p", [CurrentMembership]),
  
      %% Compute leaving list.
      LeavingNodes = lists:filter(fun(N) ->
                                          not lists:member(N, Nodes)
                                  end, CurrentMembership),
      % lager:info("LeavingNodes: ~p", [LeavingNodes]),
  
  
negative.code:                          end, State, LeavingNodes),
  
      %% Compute joining list.
      JoiningNodes = lists:filter(fun(#{name := N}) ->
                                          not lists:member(N, CurrentMembership);
                                     (N) when is_atom(N) ->
                                          not lists:member(N, CurrentMembership)
                                  end, Nodes),
      % lager:info("JoiningNodes: ~p", [JoiningNodes]),
  
      %% Issue joins.
      State2=#state{pending=Pending} = lists:foldl(fun(N, S) ->
                                                           internal_join(N, S)
                                                   end, State1, JoiningNodes),
  
      %% Compute current pending list.
      Pending1 = lists:filter(fun(#{name := N}) ->
                                      lists:member(N, NodesNames)
                              end, Pending),
  
      {reply, ok, State2#state{pending=Pending1}};
  
  handle_call({leave, Node}, From, State0) ->
      %% Perform leave.
  