anchor.diff:  
   -spec global_rate() -> {float(), float()}.
   global_rate() ->
  -    gen_server:call(?SERVER, global_rate).
  +    RR = sum_global_rate(etorrent_recv_state),
  +    SR = sum_global_rate(etorrent_send_state),
  +    {RR, SR}.
   
   %% ====================================================================
   
  
positive.code:                  global_recv = etorrent_rate:init(?RATE_FUDGE),
                   global_send = etorrent_rate:init(?RATE_FUDGE)}}.
  
  % @todo Lift these calls out of the process.
  handle_call(global_rate, _From, S) ->
      RR = sum_global_rate(etorrent_recv_state),
      SR = sum_global_rate(etorrent_send_state),
      {reply, {RR, SR}, S};
  handle_call(_Request, _From, State) ->
      Reply = ok,
      {reply, Reply, State}.
  
  handle_cast({What, Id, Pid}, S) ->
      ok = alter_state(What, Id, Pid),
  
negative.code: -include("peer_state.hrl").
  -include("rate_mgr.hrl").
  -include("etorrent_rate.hrl").
  -include("log.hrl").
  
  -behaviour(gen_server).
  
  