anchor.diff:                           Succ         :: node:node_type(),
                            RTState      :: ?RT:rt(),
                            TriggerState :: trigger:state()}).
  --type(state_uninit() :: {uninit, TriggerState :: trigger:state()}).
  +-type(state_uninit() :: {uninit, MessageQueue::msg_queue:msg_queue(), TriggerState::trigger:state()}).
   -type(state() :: state_init() | state_uninit()).
   %% userdevguide-end rt_loop:state
   
  
positive.code:     gen_component:start_link(?MODULE, Trigger, [{register, InstanceId, routing_table}]).
  
  %% @doc Initialises the module with an empty state.
  -spec init(module()) -> {uninit, trigger:state()}.
  init(Trigger) ->
      % Note: no need to call dht_node:register_for_node_change(self()) since we
      % get notified of a new node ID via the update_state/3 method that is
      % called in dht_node's rm_update_neighbors handler
      log:log(info,"[ RT ~p ] starting routingtable", [comm:this()]),
      TriggerState = trigger:init(Trigger, ?MODULE),
      {uninit, TriggerState}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Private Code
  
negative.code:     new_state(Id, Pred, Succ, NewRT, TriggerState);
  
  % debug_info for web interface
  on({'$gen_cast', {debug_info, Requestor}},
     {_Id, _Pred, _Succ, RTState, _TriggerState} = State) ->
      KeyValueList =
          [{"rt_size", ?RT:get_size(RTState)},
           {"rt (index, node):", ""} | ?RT:dump(RTState)],
  