anchor.diff:  %% Merged list will reach length of MaxSize.
   %% @end
   %%-------------------------------------------------------------------
  --spec umerge_tail([list_elem()], [list_elem()], [transfer:id()], non_neg_integer()) -> [transfer:id()].
  +-spec umerge_tail([list_elem()], [list_elem()], [transfer:id()], list_limit()) ->
  +    [transfer:id()].
   umerge_tail([], [], Merged, _Limit) ->
       lists:reverse(Merged);
   umerge_tail(_, _ , Merged, _Limit) when length(Merged) =:= _Limit ->
  
positive.code: -export([delete_scheduled_transfer_link/3, delete_active_transfer_link/2,
      delete_active_transfer_link/3, delete_past_transfer_link/3,
      add_scheduled_transfer_link/3, add_active_transfer_link/3,
      add_past_transfer_link/3, list_transfers/4, for_each_current_transfer/3, list_aggregated_transfers/5]).
  
  -ifdef(TEST).
  -export([umerge/4, umerge_tail/4]).
  -endif.
  
  -type link_name() :: binary().
  -type list_elem() :: transfer:id() | {transfer:id() | link_name()}.
  -type virtual_list_id() :: binary(). % ?(SCHEDULED|CURRENT|PAST)_TRANSFERS_KEY
  -type offset() :: non_neg_integer().
  -type list_limit() :: transfer:list_limit().
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  -spec list_transfers(SpaceId :: od_space:id(), virtual_list_id(),
      offset(), list_limit(), boolean()) -> [list_elem()].
  list_transfers(SpaceId, ListDocId, Offset, all, ListTransferIdsOnly) ->
      {ok, Transfers} = for_each_transfer(ListDocId,
          list_transfers_callback(ListTransferIdsOnly), [], SpaceId, #{
          offset => Offset
      }),
      lists:reverse(Transfers);
  list_transfers(SpaceId, ListDocId, Offset, Length, ListTransferIdsOnly) ->
      {ok, Transfers} = for_each_transfer(ListDocId,
          list_transfers_callback(ListTransferIdsOnly), [], SpaceId, #{
          offset => Offset,
          size => Length
      }),
  