anchor.diff:  group_iterator(Iterator, eof, _) -> 
       Iterator.
   
  +
  +buffer_converter(ServerPid, Root) ->
  +    receive
  +        {convert, Buffer} ->
  +            %% Calculate the segment filename, open the segment, and convert.
  +            SNum  = get_id_number(mi_buffer:filename(Buffer)),
  +            SName = join(Root, "segment." ++ integer_to_list(SNum)),
  +
  +            case has_deleteme_flag(SName) of
  +                true ->
  +                    %% remove files from a previously-failed conversion
  +                    file:delete(mi_segment:data_file(SName)),
  +                    file:delete(mi_segment:offsets_file(SName));
  +                false ->
  +                    set_deleteme_flag(SName)
  +            end,
  +
  +            SegmentWO = mi_segment:open_write(SName),
  +            mi_segment:from_buffer(Buffer, SegmentWO),
  +            gen_server:cast(ServerPid, {buffer_to_segment, Buffer, SegmentWO}),
  +            ?MODULE:buffer_converter(ServerPid, Root)
  +    end.
   
   %% Return the ID number of a Segment/Buffer/Filename...
   %% Files can be named:
  
positive.code:     io:format("Loading merge_index from '~s'~n", [Root]),
      {NextID, Buffer, Segments} = read_buf_and_seg(Root),
      io:format("Finished loading merge_index from '~s'~n", [Root]),
  
      %% Create the state...
      State = #state {
  
negative.code:     buffers,
      next_id,
      scheduled_compaction,
      is_compacting,
      buffer_converter
  }).
  
  -define(RESULTVEC_SIZE, 1000).
  -define(DELETEME_FLAG, ".deleted").
  
  init([Root]) ->
      %% Load from disk...
  