anchor.diff:  
   
   %% @private
  -init([TorrentID, Timeserver, Numpieces]) ->
  +-spec init({torrent_id(), timeserver(), pieceindex()}) -> {ok, #state{}}.
  +init({TorrentID, Timeserver, Numpieces}) ->
       Tab = ets:new(etorrent_scarcity, [set,private]),
       %% Set all counters to 0 so we don't need to handle default
       %% values for new pieces anywhere else in the module.
  
positive.code: 
  
  -spec send_updates(pieceset() | pos_integer(), [#watcher{}],
                     array(), timeserver()) -> [#watcher{}].
  send_updates(Index, Watchers, Numpeers, Time) when is_integer(Index) ->
      HasChanged = fun(Watchedset) ->
          etorrent_pieceset:is_member(Index, Watchedset)
  
negative.code:             Watcher
      end.
  
  -spec send_update(#watcher{}, table(), timeserver()) -> reference().
  send_update(Watcher, Numpeers, Time) ->
      #watcher{
          pid=Pid,
  