anchor.diff:  
   % exports for unit tests
   -export([check_rt_integrity/1
  +        , check_well_connectedness/1
           , get_random_key_from_generator/3
       ]).
   
  
positive.code:     % only add the entry if it doesn't exist yet or if it is a sticky node. If its a
      % stickynode, RM told us about a new neighbour -> if the neighbour was already added
      % as a normal node, convert it to a sticky node now.
      case gb_trees:lookup(node:id(Entry), get_rt_tree(RT)) =:= none orelse Type =:= sticky of
          true ->
              % change the type to 'sticky' if the node is between the neighbors of the source
              % node
  
negative.code:             gb_trees:enter(PredId, NewPred,
                  gb_trees:enter(SuccId, NewSucc, Tree))
      end,
      % Note: We don't update the subscription here, as it is unclear at this point wether
      % the node died and the FD informed us on that or if the node is alive and was
      % filtered due to a full routing table. If the node died, the FD
      % already removed the subscription.
  
      RT#rt_t{nodes=UpdatedTree}
      .
  
  