anchor.diff:  %% The queue returns a new queue including the new request.
   %% @end
   -spec push(pieceindex(), chunkoffset(),
  -           chunklength(), #requestqueue{}) -> requestqueue().
  +           chunklength(), #requestqueue{}) -> rqueue().
   push(Pieceindex, Offset, Length, Requestqueue) ->
       #requestqueue{queue=Queue} = Requestqueue,
       NewQueue = queue:in({Pieceindex, Offset, Length}, Queue),
  
positive.code: -record(requestqueue, {
      low_limit  :: non_neg_integer(),
      high_limit :: pos_integer(),
      queue :: queue()}).
  -opaque requestqueue() :: #requestqueue{}.
  
  
  %% @doc Create an empty request queue with default pipeline thresholds
  %% @end
  -spec new() -> requestqueue().
  new() ->
      new(2, 10).
  
  
negative.code: %% @doc Check if a request is at the head of the request queue
  %% @end
  -spec is_head(pieceindex(), chunkoffset(),
                chunklength(), rqueue()) -> boolean().
  is_head(Pieceindex, Offset, Length, Requestqueue) ->
      I = Pieceindex,
      O = Offset,
      L = Length,
      case peek(Requestqueue) of
          false   -> false;
          {I,O,L} -> true;
          _       -> false
      end.
  
  
  %% @doc Check if the offset of a request matches the head of the queue
  %% @end
  -spec has_offset(pieceindex(), chunkoffset(), rqueue()) -> boolean().
  has_offset(Pieceindex, Offset, Requestqueue) ->
      I = Pieceindex,
      O = Offset,
  