anchor.diff:  rt_set_nodes(#rt_t{} = RT, Nodes) -> RT#rt_t{nodes=Nodes}.
   
   % @doc Set the size estimate of the ring
  --spec rt_set_ring_size(RT :: rt(), Size :: unknown | gossip_state:size()) -> rt().
  +-spec rt_set_ring_size(RT :: rt_t(), Size :: unknown | gossip_state:size()) -> rt_t().
   rt_set_ring_size(RT, Size) -> RT#rt_t{nodes_in_ring=Size}.
   
   % @doc Get the ring size estimate from the external routing table
  
positive.code:     Neighbors = dht_node_state:get(State, neighbors),
      case intervals:in(Id, nodelist:succ_range(Neighbors)) of
          true -> nodelist:succ(Neighbors);
          _ -> RT = external_rt_get_tree(dht_node_state:get(State, rt)),
               RTSize = get_size(RT),
               NodeRT = case util:gb_trees_largest_smaller_than(Id, RT) of
                   {value, _Key, N} -> N;
                   nil when RTSize =:= 0 -> nodelist:succ(Neighbors);
  
negative.code: -spec external_rt_get_tree(RT :: external_rt()) -> gb_tree().
  external_rt_get_tree(RT) when is_tuple(RT) ->
      element(2, RT).
  
  % @doc Get the size of the external rt
  -spec external_rt_get_size(RT :: external_rt()) -> non_neg_integer().
  external_rt_get_size(RT) ->
      gb_trees:size(external_rt_get_tree(RT)).
  
  %% Get the node with the given Id. This function will crash if the node doesn't exist.
  -spec rt_get_node(NodeId :: key(), RT :: rt()) -> rt_entry().
  