anchor.diff:      end,
       ok.
   
  +-type rate_mgr_tables() :: etorrent_send_state | etorrent_recv_state.
  +-spec fetch_rate(rate_mgr_tables(), integer(), pid()) ->
  +    none | float() | undefined.
   fetch_rate(Where, Id, Pid) ->
       case ets:lookup(Where, {Id, Pid}) of
           [] ->
  
positive.code:               end,
      {value, Snubbed, P}.
  
  select_state(Id, Who) ->
      case ets:lookup(etorrent_peer_state, {Id, Who}) of
          [] -> {value, #peer_state { }}; % Pick defaults
          [P] -> {value, P}
      end.
  
  fetch_recv_rate(Id, Pid) -> fetch_rate(etorrent_recv_state, Id, Pid).
  fetch_send_rate(Id, Pid) -> fetch_rate(etorrent_send_state, Id, Pid).
  
  recv_rate(Id, Pid, Rate, SnubState) ->
      gen_server:cast(?SERVER, {recv_rate, Id, Pid, Rate, SnubState}).
  
  
negative.code: handle_cast(_Msg, State) ->
      {noreply, State}.
  
  handle_info({'DOWN', _Ref, process, Pid, _Reason}, S) ->
      true = ets:match_delete(etorrent_recv_state, #rate_mgr { pid = {'_', Pid}, _='_'}),
      true = ets:match_delete(etorrent_send_state, #rate_mgr { pid = {'_', Pid}, _='_'}),
  