anchor.diff:            t_ref     :: reference()
            }).
   
  +-record(restart, {spec = default_restart() :: restart(),
  +                  history = [] :: [pos_integer()],
  +                  save_n = 10  :: pos_integer()}).
  +
   -record(reporter, {
             pid       :: pid(),
             mref      :: reference(),
  -          module    :: module()
  +          module    :: module(),
  +          opts = [] :: [{atom(), any()}],
  +          restart = #restart{}
            }).
   
   -record(st, {
  
positive.code:             {noreply, St}
      end;
  
  handle_info({'DOWN', Ref, process, _Pid, _Reason}, S) ->
      Subs =
          case lists:keyfind(Ref, #reporter.mref, S#st.reporters) of
              #reporter {module = Module} ->
                  purge_subscriptions(Module, S#st.subscribers);
              _ -> S#st.subscribers
          end,
      {noreply, S#st { subscribers = Subs }};
  
  handle_info(_Info, State) ->
      ?warning("exometer_report:info(??): ~p~n", [ _Info ]),
      {noreply, State}.
  
  %%--------------------------------------------------------------------
  %% @private
  
negative.code:                          assert_no_duplicates(ReporterList),
                           lists:foldr(
                             fun({Reporter, Opt}, Acc) ->
                                     Restart = get_restart(Opt),
                                     {Pid, MRef} = spawn_reporter(Reporter, Opt),
                                     [ #reporter { module = Reporter,
                                                   pid = Pid,
                                                   mref = MRef,
                                                   opts = Opt,
                                                   restart = Restart} | Acc]
                             end, [], ReporterList);
                       false -> 
                           []
  