anchor.diff:  %% userdevguide-begin rt_frtchord:export_rt_to_dht_node
   %% @doc Converts the internal RT to the external RT used by the dht_node.
   %% TODO
  +-spec export_rt_to_dht_node(rt(), Neighbors::nodelist:neighborhood()) -> external_rt().
   export_rt_to_dht_node(RT, _Neighbors) -> RT.
   %% userdevguide-end rt_frtchord:export_rt_to_dht_node
   
  
positive.code: %% 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
  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.
  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.
  n() -> n_().
  %% @doc Helper for n/0 to make dialyzer happy with internal use of n/0.
  n_() -> 16#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + 1.
  %% userdevguide-end rt_frtchord:n
  
  %% @doc Keep a key in the address space. See n/0.
  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.
  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.
  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;
  
negative.code: %% @doc Updates the routing table due to a changed node ID, pred and/or succ.
  %% TODO what should be done here? should we really throw away everything? or trigger
  %rebuild?
  -spec update(OldRT::rt(), OldNeighbors::nodelist:neighborhood(),
               NewNeighbors::nodelist:neighborhood()) -> {ok, rt()}.
  update(_OldRT, _OldNeighbors, NewNeighbors) ->
      {ok, empty(NewNeighbors)}.
  %% userdevguide-end rt_frtchord:update
  