anchor.diff:  start_link(Url, Options) ->
       gen_server:start_link(?MODULE, [Url, Options], []).
   
  +%% @doc does not block
  +all(Server) ->
  +    gen_server:call(Server, all_changes).
  +
  +%% @doc returns the next change from the feed, blocking if necessary
   next(Server) ->
       gen_server:call(Server, next_change, infinity).
   
  
positive.code: -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, 
      code_change/3]).
  
  -export([start/2, start_link/2, next/1, stop/1]).
  
  -define(MIN_BUFFER_SIZE, 100).
  
  
negative.code:         [Code,Hdrs]),
      {stop, {error, list_to_integer(Code)}, State};
  
  handle_info({ibrowse_async_response, _, {error, Reason}}, State) ->
      {stop, {error, Reason}, State};
  handle_info({ibrowse_async_response, Id, Msg}, #remote{reqid=Id} = State) ->
      ?LOG_DEBUG("~p reqid ~p ibrowse_async_response ~p", [?MODULE, Id, Msg]),
      {noreply, process_response(Msg, Id, State)};
  
  handle_info({ibrowse_async_response_end, Id}, #remote{reqid=Id} = State) ->
      ?LOG_DEBUG("got ibrowse_async_response_end ~p", [State#remote.reply_to]),
  