anchor.diff:           code_change/3]).
   
   %% temporary exceptions
  --export([delete_state_from_disk/0]).
  +-export([delete_state_from_disk/0,
  +         delete_epoch_from_disk/0]).
   
   -type active() :: sets:set(node_spec()).
   -type passive() :: sets:set(node_spec()).
  
positive.code: 
      State = case neighbor_acceptable(Priority, Tag, State0) of
          true ->
              %% Reply to acknowledge the neighbor was accepted.
              do_send_message(Sender,
                              {neighbor_accepted, Peer, Tag, Myself},
                              Connections),
  
              State1 = add_to_active_view(Peer, Tag, State0),
              State1#state{connections=Connections};
          false ->
              %% Reply to acknowledge the neighbor was rejected.
              do_send_message(Sender,
  
negative.code: -type suspected() :: sets:set(node_spec()).
  -type reserved() :: dict:dict(atom(), node_spec()).
  -type tag() :: atom().
  -type epoch() :: non_neg_integer().
  -type epoch_count() :: non_neg_integer().
  -type message_id() :: {epoch(), epoch_count()}.
  -type message_id_store() :: dict:dict(node_spec(), message_id()).
  
  -record(state, {myself :: node_spec(),
                  active :: active(),
  