anchor.diff:      erlang:send_after(5000, self(), {start_listener, Seq}),
       {noreply, NewSt#st{changes_pid=undefined}};
   handle_info({start_listener, Seq}, St) ->
  -    {NewPid, _} = spawn_monitor(fun() -> listen_for_changes(Seq) end),
  -    {noreply, St#st{changes_pid=NewPid}};
  +    {noreply, St#st{
  +        changes_pid = start_changes_listener(Seq)
  +    }};
   handle_info(restart_config_listener, State) ->
       ok = config:listen_for_changes(?MODULE, nil),
       {noreply, State};
  
positive.code:     exit({seq, EndSeq});
  changes_callback({change, {Change}, _}, _) ->
      DbName = couch_util:get_value(<<"id">>, Change),
      case DbName of <<"_design/", _/binary>> -> ok; _Else ->
          case mem3_util:is_deleted(Change) of
          true ->
              gen_server:cast(?MODULE, {cache_remove, DbName});
          false ->
              case couch_util:get_value(doc, Change) of
              {error, Reason} ->
  
negative.code: -record(st, {
      max_size = 25000,
      cur_size = 0,
      changes_pid,
      update_seq
  }).
  
  -include_lib("mem3/include/mem3.hrl").
  