anchor.diff:      lists:keydelete(node(), 1, Members).
   
   %% @private
  -establish_connections(Pending, Membership, Connections) ->
  +establish_connections(Pending, Membership, _MemberParallelism, Connections) ->
       %% Reconnect disconnected members and members waiting to join.
       Members = members(Membership),
       Peers = Members ++ Pending,
  
positive.code: handle_call({leave, Node}, _From,
              #state{actor=Actor,
                     connections=Connections,
                     membership=Membership0}=State) ->
      %% Node may exist in the membership on multiple ports, so we need to
      %% remove all.
      Membership = lists:foldl(fun({Name, _, _} = N, L0) ->
                          case Node of
                              Name ->
                                  {ok, L} = ?SET:mutate({rmv, N}, Actor, L0),
                                  L;
                              _ ->
                                  L0
                          end
                  end, Membership0, decode(Membership0)),
  
      %% Gossip.
      do_gossip(Membership, Connections),
  
negative.code: -include("partisan.hrl").
  
  -define(SET, state_orset).
  -define(DEFAULT_PARALLELISM, 1).
  
  -type pending() :: [node_spec()].
  -type membership() :: ?SET:state_orset().
  