anchor.diff:                      <<DocIdx:160/integer>>, NVal, CHBin, UpNodes)),
       rotate_list(OrigPreflist, length(OrigPreflist), Offset).
   
  -rotate_list(List, _Len, 0) ->
  -    %% Unnecessary special case, slightly more efficient
  -    List;
   rotate_list(List, Len, Offset) when Offset >= Len ->
       List;
   rotate_list(List, _Len, Offset) ->
  
positive.code:                             partition_filters=HashFilters}) ->
      {[{TargetHash, node()}], [{TargetHash, HashFilters}]}.
  
  %% The `riak_core_apl' functions we rely on assume a key hash, not a
  %% partition hash.
  partition_to_preflist(Partition, NVal, Offset, UpNodes, CHBin) ->
      DocIdx = convert(Partition, doc_index),
      docidx_to_preflist(DocIdx, NVal, Offset, UpNodes, CHBin).
  
  docidx_to_preflist(DocIdx, NVal, Offset, UpNodes, CHBin) ->
  
negative.code: find_vnode_partitions(Index, N, RingSize) ->
      RingIndexInc = chash:ring_increment(RingSize),
  
      n_keyspaces({vnode_id, Index div RingIndexInc, RingSize}, N).
  
  partitions_by_index_or_filter(Idx, NVal, [], RingSize) ->
      find_vnode_partitions(Idx, NVal, RingSize);
  