anchor.diff:  %% network delay; if so, we have to remove this element from the passive
   %% view, otherwise it will exist in both places.
   %%
  -add_to_active_view({Name, _, _}=Peer,
  +add_to_active_view({Name, _, _}=Peer, Tag,
                      #state{myself=Myself,
                             active=Active0,
                             passive=Passive0,
  +                          reserved=Reserved0,
                             max_active_size=MaxActiveSize}=State0) ->
       lager:info("Adding ~p to active view on ~p", [Peer, Myself]),
   
  
positive.code: -type passive() :: sets:set(node_spec()).
  -type pending() :: sets:set(node_spec()).
  -type suspected() :: sets:set(node_spec()).
  
  -record(state, {myself :: node_spec(),
                  active :: active(),
                  passive :: passive(),
                  pending :: pending(),
                  suspected :: suspected(),
                  connections :: connections(),
                  max_active_size :: non_neg_integer(),
  
negative.code:     is_in_passive_view(Peer, Passive) andalso is_not_empty(Suspected).
  
  %% @private
  perform_join(Peer, Tag,
               #state{myself=Myself,
                      active=Active0,
                      pending=Pending,
                      suspected=Suspected0,
                      connections=Connections0}=State0) ->
      %% Add to active view.
      State = #state{active=Active} = add_to_active_view(Peer, Tag, State0),
  
      %% Establish connections.
      Connections = establish_connections(Pending,
                                          Active,
                                          Connections0),
  
      %% Send neighbor_accepted message to origin, that will
      %% update it's view.
      %%
      do_send_message(Peer,
                      {neighbor_accepted, Myself, Tag, Peer},
                      Connections),
  
      %% Notify with event.
  