anchor.diff:  
   cut(0, _I, _X, _Sz, Set) ->
       %% nNo more pieces wanted
  -    Set;
  +    {value, Set};
   cut(K, 5, X, Sz, Set) ->
       %% We exhausted the X binary. Start a new round.
       rnd(K, X, Sz, Set);
  
positive.code:     rnd(K, X, Sz, sets:new()).
  
  %%====================================================================
  %% Internal functions
  %%====================================================================
  rnd(0, _X, _Sz, Set) -> {value, Set};
  rnd(K, X, Sz, Set) ->
      %% Start a new round. Each round hashes the previous round to gen.
  
negative.code: %% @author Jesper Louis Andersen <jesper.louis.andersen@gmail.com>
  %% @doc Compute the set of ALLOWED_FAST for the FAST-EXTENSION.
  %% <p><b>This module is currently not in use</b></p>
  %% <p>This module has a single function, to compute the allowed fast
  %% set of a peer basic on the IP address of the peer in question.</p>
  -module(etorrent_allowed_fast).
  
  -ifdef(TEST).
  -include_lib("eunit/include/eunit.hrl").
  -endif.
  
  -include("log.hrl").
  
  %% API
  -export([allowed_fast/4]).
  
  %%====================================================================
  
  %% @doc Compute the allowed fast set for a peer
  %% <p>We are given Sz - the number of pieces, an IP-tuple, K - the number of
  %% pieces to compute and the InfoHash of the torrent. We compute the
  %% allowed fast set - a small set of pieces a peer has exclusive
  %% access to always when it wants to request.</p>
  %% @end
  -type ip() :: {integer(), integer(), integer(), integer()}.
  -spec allowed_fast(integer(), ip() | binary(), integer(), binary()) -> {value, set()}.
  allowed_fast(Sz, {B1, B2, B3, B4}, K, InfoHash) ->
  