anchor.diff:      last_seq,
       conn = nil,
       reqid = nil,
  -    by_seq_from = nil,
  -    by_seq_loop = nil,
       complete = false,
       count = 0,
       partial_chunk = nil,
  
positive.code:         ParsedRevs = couch_doc:parse_revs(lists:flatten(RawRevs)),
          Change = {[
              {<<"seq">>, Seq},
              {<<"Id">>, Id},
              {<<"changes">>, [{[{<<"rev">>,R}]} || R <- ParsedRevs]}
          ]},
          gen_server:call(Server, {add_change, Change}),
          Seq
      end, 0, proplists:get_value(<<"rows">>, Results)),
      by_seq_loop(Server, Source, EndSeq+1).
  
  decode_row(<<",\n", Rest/binary>>) ->
  
negative.code:         ?LOG_INFO("source doesn't have _changes, trying _all_docs_by_seq", []),
          Self = self(),
          BySeqPid = spawn_link(fun() -> by_seq_loop(Self, Source, Since) end),
          {ok, #state{last_seq=Since, changes_loop=BySeqPid}};
      {ibrowse_async_headers, ReqId, Code, _} ->
          {stop, {changes_error_code, list_to_integer(Code)}}
      after 10000 ->
  