anchor.diff:  
   %% api functions
   -export([start_link/2,
  -         add_peer/1,
  -         add_piece/2,
  +         add_peer/2,
  +         add_piece/3,
            get_order/2]).
   
   %% gen_server callbacks
  
positive.code: 
  %% @doc
  %% @end
  -spec add_peer(torrent_id()) -> {ok, pieceset()}.
  add_peer(TorrentID) ->
      SrvPid = lookup_scarcity_server(TorrentID),
      gen_server:call(SrvPid, {add_peer, self()}).
  
  
  %% @doc
  %% @end
  -spec add_piece(torrent_id(), pos_integer()) -> {ok, pieceset()}.
  add_piece(TorrentID, PieceIndex) ->
      SrvPid = lookup_scarcity_server(TorrentID),
      gen_server:call(SrvPid, {add_piece, self(), PieceIndex}).
  
  %% @doc
  %% @end
  
negative.code:     {ok, _} = ?scarcity:start_link(6, 8),
      Main = self(),
      Pid = spawn_link(fun() ->
          ok = ?scarcity:add_peer(6, pieces([])),
          ok = ?scarcity:add_piece(6, 0, pieces([0])),
          ok = ?scarcity:add_piece(6, 2, pieces([0,2])),
          Main ! done,
          receive die -> ok end
      end),
      receive done -> ok end,
      Pieces  = ?pieceset:from_list([0,1,2,3,4,5,6,7], 8),
      {ok, O1} = ?scarcity:get_order(6, pieces([0,1,2,3,4,5,6,7])),
      ?assertEqual([1,3,4,5,6,7,0,2], O1),
      Ref = monitor(process, Pid),
      Pid ! die,
  