anchor.diff:  %% userdevguide-begin rt_frtchord:to_pid_list
   %% @doc Returns the pids of the routing table entries.
   %% TODO RT should probably be a State tuple, not the RT itself
  +-spec to_pid_list(rt()) -> [comm:mypid()].
   to_pid_list(RT) -> [node:pidX(rt_entry_node(N)) || N <- to_list(RT)].
   %% userdevguide-end rt_frtchord:to_pid_list
   
   %% userdevguide-begin rt_frtchord:get_size
   %% @doc Returns the size of the routing table.
  +-spec get_size(rt() | external_rt()) -> non_neg_integer().
   get_size(RT) -> gb_trees:size(get_rt_tree(RT)).
   %% userdevguide-end rt_frtchord:get_size
   
   %% userdevguide-begin rt_frtchord:n
   %% @doc Returns the size of the address space.
  +-spec n() -> integer().
   n() -> n_().
   %% @doc Helper for n/0 to make dialyzer happy with internal use of n/0.
  +-spec n_() -> 16#100000000000000000000000000000000.
   n_() -> 16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + 1.
   %% userdevguide-end rt_frtchord:n
   
   %% @doc Keep a key in the address space. See n/0.
  +-spec normalize(Key::key_t()) -> key_t().
   normalize(Key) -> Key band 16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
   
   %% @doc Gets the number of keys in the interval (Begin, End]. In the special
   %%      case of Begin==End, the whole key range as specified by n/0 is returned.
  +-spec get_range(Begin::key(), End::key() | ?PLUS_INFINITY_TYPE) -> number().
   get_range(Begin, End) -> get_range_(Begin, End).
   
   %% @doc Helper for get_range/2 to make dialyzer happy with internal use of
   %%      get_range/2 in the other methods, e.g. get_split_key/3.
  +-spec get_range_(Begin::key_t(), End::key_t() | ?PLUS_INFINITY_TYPE) -> number().
   get_range_(Begin, Begin) -> n_(); % I am the only node
   get_range_(?MINUS_INFINITY, ?PLUS_INFINITY) -> n_(); % special case, only node
   get_range_(Begin, End) when End > Begin -> End - Begin;
  
positive.code: %% userdevguide-begin rt_frtchord:filter_dead_node
  %% @doc Removes dead nodes from the routing table (rely on periodic
  %%      stabilization here).
  filter_dead_node(RT, DeadPid) -> 
      % find the node id of DeadPid and delete it from the RT
      [Node] = [N || {N, _,_,_} <- to_list(RT), node:pidX(N) =:= DeadPid],
  
negative.code: 
  %% userdevguide-begin rt_frtchord:get_replica_keys
  %% @doc Returns the replicas of the given key.
  -spec get_replica_keys(key()) -> [key()].
  get_replica_keys(Key) ->
      [Key,
       Key bxor 16#40000000000000000000000000000000,
  