anchor.diff:      OldValue = erlang:put(InternalKey, NewValue),
       check_report(Process, Key, OldValue, NewValue).
   
  +%% @doc Sets the value at Key inside the monitor process of the current group.
  +%%      Either specify a new value or an update function which generates the
  +%%      new value from the old one.
  +-spec monitor_set_value(Process::atom(), Key::key(),
  +                        NewValue_or_UpdateFun::term() | fun((Old::Value | undefined) -> New::Value)) -> ok.
  +monitor_set_value(Process, Key, NewValue_or_UpdateFun) ->
  +    MyMonitor = pid_groups:get_my(monitor),
  +    comm:send_local(MyMonitor, {report_single, Process, Key, NewValue_or_UpdateFun}).
  +
   %% @doc Checks whether a value exists at Key.
   -spec proc_exists_value(Process::atom(), Key::key()) -> boolean().
   proc_exists_value(_Process, Key) ->
  
positive.code:              end,
      NewData = rrd:add_nonexisting_timeslots(MyData, OldValue),
      ets:insert(Table, {TableIndex, NewData}),
      Table;
  
  on({web_debug_info, Requestor}, Table) ->
  
negative.code: -include("scalaris.hrl").
  
  -export([start_link/1, init/1, on/2, check_config/0]).
  % (temporarily) storing monitoring values in the calling process:
  -export([proc_set_value/3, proc_get_value/2, proc_exists_value/2]).
  % sending monitoring values to the monitor process
  -export([monitor_set_value/3]).
  
  -type key() :: string().
  -type internal_key() :: {'$monitor$', Key::string()}.
  