anchor.diff:  
   changes(DbName, #changes_args{} = Args, StartSeq) ->
       changes(DbName, [Args], StartSeq);
  -changes(DbName, Options, StartVector) ->
  +changes(DbName, Options, StartSeq) ->
       erlang:put(io_priority, {interactive, DbName}),
       #changes_args{dir=Dir} = Args = lists:keyfind(changes_args, 1, Options),
       case get_or_create_db(DbName, []) of
       {ok, Db} ->
  -        StartSeq = calculate_start_seq(Db, StartVector),
           Enum = fun changes_enumerator/2,
           Opts = [{dir,Dir}],
           Acc0 = {Db, StartSeq, Args, Options},
           try
               {ok, {_, LastSeq, _, _}} =
                   couch_db:changes_since(Db, StartSeq, Enum, Opts, Acc0),
  -            rexi:reply({complete, {LastSeq, couch_db:get_uuid(Db), node()}})
  +            rexi:reply({complete, LastSeq})
           after
               couch_db:close(Db)
           end;
  
positive.code: 
  changes_row(Db, #doc_info{id=Id, high_seq=Seq}=DI, Results, Del, true, Opts) ->
      Doc = doc_member(Db, DI, Opts),
      Uuid = couch_db:get_uuid(Db),
      #change{key={Seq, Uuid, node()}, id=Id, value=Results, doc=Doc, deleted=Del};
  changes_row(Db, #doc_info{id=Id, high_seq=Seq}, Results, true, _, _) ->
      Uuid = couch_db:get_uuid(Db),
      #change{key={Seq, Uuid, node()}, id=Id, value=Results, deleted=true};
  changes_row(Db, #doc_info{id=Id, high_seq=Seq}, Results, _, _, _) ->
      Uuid = couch_db:get_uuid(Db),
      #change{key={Seq, Uuid, node()}, id=Id, value=Results}.
  
  doc_member(Shard, DocInfo, Opts) ->
      case couch_db:open_doc(Shard, DocInfo, [deleted | Opts]) of
  
negative.code:         _ ->
              ok
      end.
  