anchor.diff:  -spec bucket_empty_handle_list_keys(riak_client(), binary(),
                                       {ok, list()} |
                                       {error, term()}) ->
  -    boolean().
  +                                           boolean().
   bucket_empty_handle_list_keys(RcPid, Bucket, {ok, Keys}) ->
       AnyPred = bucket_empty_any_pred(RcPid, Bucket),
       %% `lists:any/2' will break out early as soon
  
positive.code: cleanup_bucket(?RCS_BUCKET{last_action=created}) ->
      false;
  cleanup_bucket(?RCS_BUCKET{last_action=deleted,
                              modification_time=ModTime}) ->
      %% the prune-time is specified in seconds, so we must
      %% convert Erlang timestamps to seconds first
      NowSeconds = riak_cs_utils:second_resolution_timestamp(os:timestamp()),
      ModTimeSeconds = riak_cs_utils:second_resolution_timestamp(ModTime),
      (NowSeconds - ModTimeSeconds) >
      riak_cs_config:user_buckets_prune_time().
  
  %% @doc Determine if an existing bucket from the resolution list
  %% should be kept or replaced when a conflict occurs.
  -spec keep_existing_bucket(cs_bucket(), cs_bucket()) -> boolean().
  keep_existing_bucket(?RCS_BUCKET{last_action=LastAction1,
                                    modification_time=ModTime1},
                       ?RCS_BUCKET{last_action=LastAction2,
                                    modification_time=ModTime2}) ->
      if
          LastAction1 == LastAction2
          andalso
  
negative.code: 
  %% @doc Fetches the bucket object, even it is marked as free
  -spec fetch_bucket_object_raw(binary(), riak_client()) ->
                                       {ok, riakc_obj:riakc_obj()} | {error, term()}.
  fetch_bucket_object_raw(BucketName, RcPid) ->
      case riak_cs_riak_client:get_bucket(RcPid, BucketName) of
          {ok, Obj} ->
  