anchor.diff:  %% @doc Check if a request queue contains a specific request
   %% @end
   -spec member(pieceindex(), chunkoffset(),
  -             chunklength(), #requestqueue{}) -> boolean().
  +             chunklength(), rqueue()) -> boolean().
   member(Piece, Offset, Length, Requestqueue) ->
       %% The implementation of queue will not change in a 1000 years
       #requestqueue{queue=Queue} = Requestqueue,
  
positive.code: %% If not, the number of requests needed to hit the high threshold
  %% is returned regardless of whether the queue is low or not.
  %% @end
  -spec needs(#requestqueue{}) -> non_neg_integer().
  needs(Requestqueue) ->
      #requestqueue{high_limit=High, queue=Queue} = Requestqueue,
      Length = queue:len(Queue),
  
negative.code: %% The queue returns a new queue including the new request.
  %% @end
  -spec push(pieceindex(), chunkoffset(),
             chunklength(), rqueue()) -> rqueue().
  push(Pieceindex, Offset, Length, Requestqueue) ->
      #requestqueue{queue=Queue} = Requestqueue,
      NewQueue = queue:in({Pieceindex, Offset, Length}, Queue),
  