anchor.diff:      {report_rrd, Process::atom(), Key::key(), OldValue::rrd:rrd(), Value::rrd:rrd()} |
       {report_single, Process::atom(), Key::key(),
        NewValue_or_UpdateFun::term() | fun((Old::Value | undefined) -> New::Value)} |
  +    {get_rrd, Process::atom(), Key::key(), SourcePid::comm:mypid()} |
       {web_debug_info, Requestor::comm:erl_local_pid()}.
   
   %% @doc Converts the given Key to avoid conflicts in erlang:put/get.
  
positive.code: 
  on({report_single, Process, Key, NewValue_or_UpdateFun}, Table) ->
      proc_set_value(Process, Key, NewValue_or_UpdateFun),
      Table;
  
  on({web_debug_info, Requestor}, Table) ->
  
negative.code:     TableIndex = {Process, Key},
      MyData = case ets:lookup(Table, TableIndex) of
                   [{TableIndex, X}] -> X;
                   [] ->
                       SlotLength = rrd:get_slot_length(OldValue),
                       OldTime = rrd:get_current_time(OldValue),
                       rrd:create(SlotLength, get_timeslots_to_keep(),
  