anchor.diff:  
   -define(TICK_INTERVAL_MILLIS, 10000).
   -define(REFRESH_INTERVAL_MICROS, 60 * 60* 1000* 1000 * 1000).
  --record(state, { retards =[], upstream = dict:new(), tbd = dict:new(), errors = dict:new() }).
  +-record(state, { pids=[], retards =[], upstream = dict:new(), tbd = dict:new(), errors = dict:new() }).
   
   -compile(export_all).
   % -----------------------------------------------------------------------------
  
positive.code: handle_call(fetch_errors, _From, State) ->
      {reply, State#state.errors, State};
  handle_call(info, From, State) ->
      spawn_link(fun() ->
          ErrorCount = dict:size(State#state.errors),
          RetardsCount = length(State#state.retards),
          UpstreamCount = dict:size(State#state.upstream),
          TbdCount = dict:size(State#state.tbd),
          Info = [
              {errors, ErrorCount},
              {retards, RetardsCount},
              {upstream, UpstreamCount},
              {tbd, TbdCount}
          ],
          gen_server:reply(From, Info)
      end),
      {noreply, State};
  handle_call(_Req, _From, State) ->
  
negative.code:     NewErrors = dict:store({BaseUrl, AuthorAndModule, Version}, {At, {ErrorType, Reason, StackTrace}}, State#state.errors),
      {noreply, State#state{ tbd = NewTbd, errors = NewErrors}};
  
  handle_info({'EXIT', Pid, _Reason}, State) ->
      NewPids = case lists:element(Pid, State#state.pids) of
          false -> State#state.pids;
          true ->
              self() ! tick, 
              lists:delete(Pid, State#state.pids)
      end,
      {noreply, State#state{ pids = NewPids }};
  
  handle_info(Msg, State) ->
      {noreply, State}.
  