anchor.diff:  %% - key streaming instead of key listing, or use 2i streaming to keep result sorted
   
   -export([main/1]).
  --export([list_buckets/1, list_objects/2, print_object/3, list_blocks/4]).
  +-export([print_object/3, list_blocks/4]).
   -export([rec_pp_fun/2]).
   
   -mode(compile).
  
positive.code:                            {SiblingNo, _UUID, M} <- get_manifest(RiakcPid, Bucket, Key)]
                 end,
      ListFun(RiakcPid, ManifestBucketName, PrintFun).
  
  pb_list_buckets(RiakcPid, PrintFun) ->
          case riakc_pb_socket:list_buckets(RiakcPid) of
              {ok, Keys} ->
                  PrintFun(lists:sort(Keys));
              Error ->
                  Error
          end.
  
  pb_stream_list_buckets(RiakcPid, PrintFun) ->
          case riakc_pb_socket:stream_list_buckets(RiakcPid) of
              {ok, ReqId} ->
                  print_stream_list(ReqId, PrintFun);
              Error ->
                  error(Error)
          end.
  
  pb_list_keys(RiakcPid, BucketName, PrintFun) ->
  
          case riakc_pb_socket:list_keys(RiakcPid, BucketName) of
              {ok, Keys} ->
                  PrintFun(lists:sort(Keys));
              Error ->
                  Error
          end.
  
  pb_stream_list_keys(RiakcPid, BucketName, PrintFun) ->
          case riakc_pb_socket:stream_list_keys(RiakcPid, BucketName) of
              {ok, ReqId} ->
                  print_stream_list(ReqId, PrintFun);
              Error ->
                  error(Error)
          end.
  
  print_stream_list(ReqId, PrintFun) ->
      receive
          {ReqId, done} ->
              ok;
          {ReqId, {error, Reason}} ->
              error(Reason);
          {ReqId, {_, Res}} ->
              PrintFun(Res),
              print_stream_list(ReqId, PrintFun)
      end.
  
  list_users(RiakcPid, ListFun)->
      heading("~-40..=s ~-8..=s: ~-40..=s ~-40..=s~n",
  
negative.code:                end,
      ListFun(RiakcPid, "moss.buckets", PrintFun).
  
  list_objects(RiakcPid, Bucket, ListFun)->
      print_manifest_summary(pid, bucket, sibling_no, header),
      ManifestBucketName = riak_cs_utils:to_bucket_name(objects, Bucket),
  