anchor.diff:  % Miscellaneous
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  +%% @doc Sends changes to a subscribed cyclon process when the neighborhood
  +%%      changes.
  +-spec rm_send_changes(Pid::comm:erl_local_pid(),
  +        OldNeighbors::nodelist:neighborhood(), NewNeighbors::nodelist:neighborhood()) -> ok.
  +rm_send_changes(Pid, _OldNeighbors, NewNeighbors) ->
  +    comm:send_local(Pid, {rm_changed, nodelist:node(NewNeighbors)}).
  +
   %% @doc Checks whether config parameters of the cyclon process exist and are
   %%      valid.
   -spec check_config() -> boolean().
  
positive.code: % functions gen_component, the trigger and the config module use
  -export([init/1, on_inactive/2, on_active/2,
           activate/0, deactivate/0,
           get_shuffle_interval/0, check_config/0]).
  
  % helpers for creating getter messages:
  -export([get_subset_rand/1, get_subset_rand_next_interval/1]).
  
negative.code:          ({deactivate_cyclon}, state_active()) -> {'$gen_component', [{on_handler, Handler::on_inactive}], State::state_inactive()}.
  on_active({deactivate_cyclon}, {_Cache, _Node, _Cycles, TriggerState})  ->
      log:log(info, "[ Cyclon ~.0p ] deactivating...~n", [comm:this()]),
      rm_loop:unsubscribe(self(), fun rm_loop:subscribe_default_filter/2, fun cyclon:rm_send_changes/3),
      gen_component:change_handler({inactive, msg_queue:new(), TriggerState},
                                   on_inactive);
  
  