anchor.diff:  filter_dead_node(RT, DeadPid) -> 
       % find the node id of DeadPid and delete it from the RT
       [Node] = [N || N <- internal_to_list(RT), node:pidX(N) =:= DeadPid],
  +    delete_fd(node:pidX(Node)),
       entry_delete(node:id(Node), RT)
       .
   %% userdevguide-end rt_frtchord:filter_dead_node
  
positive.code: % @doc Filter one element from a set of nodes. Do it in a way that filters such a node
  % that the resulting routing table is the best one under all _possible_ routing tables.
  -spec entry_filtering(rt(),[rt_entry()]) -> rt().
  entry_filtering(RT, []) -> RT;
  entry_filtering(RT, AllowedNodes) ->
      % XXX ensure that the allowed nodes are actually contained in the routing table
      false = lists:any(fun(none) -> true; (_) -> false end,
              [rt_lookup_node(entry_nodeid(N), RT) || N
                  <- AllowedNodes]),
      Spacings = [
          begin PredNode = predecessor_node(RT,Node),
                {Node, spacing(Node, RT) + spacing(PredNode, RT)}
  
negative.code: 
  handle_custom_message({rt_get_node_response, NewNode}, State) ->
      OldRT = rt_loop:get_rt(State),
      NewRT = case rt_lookup_node(node:id(NewNode), OldRT) of
          none -> RT = add_normal_entry(NewNode, OldRT),
                  check(OldRT, RT, rt_loop:get_neighb(State), true),
                  RT;
          _Else ->  OldRT
      end,
  
      rt_loop:set_rt(State, NewRT)
      ;
  
  handle_custom_message(_Message, _State) -> unknown_event.
  %% userdevguide-end rt_frtchord:handle_custom_message
  