anchor.diff:  % accepted messages of an active cyclon process
   -type(message() ::
       {cy_shuffle} |
  -    {rm_changed, OldNeighbors::nodelist:neighborhood(), NewNeighbors::nodelist:neighborhood()} |
  +    {rm_changed, NewNode::node:node_type()} |
       {check_state} |
       {cy_subset, SourcePid::comm:mypid(), PSubset::cyclon_cache:cache()} |
       {cy_subset_response, QSubset::cyclon_cache:cache(), PSubset::cyclon_cache:cache()} |
  
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:     TriggerState2 = trigger:next(TriggerState),
      {NewCache, Node, Cycles + 1, TriggerState2};
  
  on_active({rm_changed, NewNode}, {Cache, _OldNode, Cycles, TriggerState}) ->
      {Cache, NewNode, Cycles, TriggerState};
  
  on_active({check_state}, State) ->
      check_state(State),
  