anchor.diff:  
   -spec eavg_tick(#eavg{}) -> #eavg{}.
   eavg_tick(#eavg{acc=Acc, avg=Avg, n=N, tick_interval=I}=EAvg) ->
  -    ?debugVal(EAvg),
       NAvg = (Avg * (N-1) + Acc)/N,
       TRef = erlang:start_timer(I, self(), update_avg),
       EAvg#eavg{acc=0, avg=NAvg, tref=TRef}.
  
positive.code: 
  -type node_name() :: binary().
  -type node_state() :: binary().
  -type logging_level() :: 'verbose' | 'normal'.
  -type status_atom() :: 'idle' | 'ready' | 'restarting' | 'running'.
  -type status_binary() :: binary(). % <<"idle">> | <<"ready">> | <<"restarting">> | <<"running">>.
  -type gproc_error() :: ok | {error, no_node}.
  
  -record(eavg, {acc = 0 :: integer(),
  
negative.code:                tref   :: reference()
                }).
  
  -record(state, {name                  :: binary(),
                  dead_interval         :: integer(),
                  heartbeats = 0        :: integer(),
                  logging = normal      :: logging_level(),
                  current_status = down :: status_atom(),
                  observers = [],
                  tref,
                  heartbeat_rate   :: #eavg{}
  