anchor.diff:  %%             [pid_groups:get_my(dht_node), self(), Case, {OldPidDHT, OldPidRT},
   %%              {NewPidDHT, NewPidRT}]).
   
  +-ifdef(GFRT).
  +
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % GFRT-chord
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  --ifdef(GFRT).
   % Additional information appended to an rt_entry()
   -record(rt_entry_info, {group = other_dc :: other_dc | same_dc}).
   -type rt_entry_info_t()::#rt_entry_info{}.
  
positive.code: set_adjacent_pred(#rt_entry{adjacent_fingers={_Pred, SuccId}} = Entry, PredId) ->
      set_adjacent_fingers(Entry, PredId, SuccId).
  
  -ifdef(GFRT).
  %% @doc Get the custom info field of a rt entry
  -spec get_custom_info(rt_entry()) -> custom_info().
  get_custom_info(#rt_entry{custom=CustomInfo}) -> CustomInfo.
  -endif.
  
  %% @doc Get the adjacent predecessor rt_entry() of the given node.
  -spec predecessor_node(RT::rt(), Node::rt_entry()) -> rt_entry().
  predecessor_node(RT, Node) ->
  
negative.code:             false -> other_dc
          end}.
  
  %% Check if the given node belongs to another group of nodes
  -spec is_from_other_group(rt_entry()) -> boolean().
  is_from_other_group(Node) ->
      CustomInfo = Node#rt_entry.custom,
      CustomInfo#rt_entry_info.group =:= same_dc.
  
  -else.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % FRT-chord
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  % Additional information appended to an rt_frt_helpers:rt_entry()
  -type rt_entry_info_t() :: undefined.
  
  