anchor.diff:  
   %% @author Magnus Mueller <mamuelle@informatik.hu-berlin.de>
   %% @author Jens Fischer <jensvfischer@gmail.com>
  +
   %% @doc Flexible routing table. Two flexible routing tables (FRTs) are implemented,
   %% FRT-chord and grouped FRT-chord (GFRT). The functions specific to these two
   %% implementations can be found at the end of this file (seperated by ifdefs).
  
positive.code: 
  % exports for unit tests
  -export([check_rt_integrity/1, check_well_connectedness/1, get_random_key_from_generator/3]).
  
  %% Make dialyzer stop complaining about unused functions
  
  % The following functions are not used when ?GFRT is not defined. Dialyzer should not
  % complain when they are not called.
  -compile({nowarn_unused_function,
            [{get_num_active_learning_lookups, 1},
             {set_num_active_learning_lookups, 2},
             {inc_num_active_learning_lookups, 1},
             {rt_entry_distance, 2},
             {rt_entry_id, 1},
             {set_custom_info, 2},
             {get_custom_info, 1}]}).
  
  % Functions which are specific to the frt/gfrt implementation
  -export([allowed_nodes/1, frt_check_config/0, rt_entry_info/4]).
  
negative.code: -spec rt_entry_info(Node :: node:node_type(), Type :: entry_type(),
                      PredId :: key(), SuccId :: key()) -> rt_entry_info_t().
  rt_entry_info(Node, _Type, _PredId, _SuccId) ->
      #rt_entry_info{group=case comm:get_ip(pid_dht(Node)) =:= comm:get_ip(comm:this()) of
              true -> same_dc;
              false -> other_dc
  