anchor.diff:  %% Check whether provided sequence number can be ignored.
   %% @end
   %%--------------------------------------------------------------------
  --spec ignore_change(couchbase_changes:seq(), state(), [pid()], boolean()) -> 
  +-spec ignore_change(couchbase_changes:seq(), state(), [pid()], boolean()) ->
       {boolean(), [pid()]}.
   ignore_change(Seq, State = #state{bucket = Bucket, scope = Scope},
       WorkersChecked, Retry) ->
  
positive.code: 
              ets:insert(?CHANGES_COUNTERS, {Scope, SeqSafe3}),
              gen_server:cast(GCPid, {batch_ready, SeqSafe3}),
  
              case {SeqSafe3, Callback} of
                  {Seq2, _} ->
                      erlang:send_after(0, self(), update);
                  {_, undefined} ->
                      erlang:send_after(Interval, self(), update);
                  _ ->
                      Docs = couchbase_changes_utils:get_docs(Changes, Bucket, <<>>, SeqSafe3),
                      Callback({ok, Docs}),
                      erlang:send_after(Interval, self(), update)
              end,
              State2;
          Error ->
  
negative.code: %%--------------------------------------------------------------------
  -spec terminate(Reason :: (normal | shutdown | {shutdown, term()} | term()),
      State :: state()) -> term().
  terminate(Reason, #state{callback = Callback, seq_safe = SeqSafe} = State) ->
      case Reason of
          normal -> ok;
          _ -> Callback({error, SeqSafe, Reason})
      end,
      ?log_terminate(Reason, State).
  
  %%--------------------------------------------------------------------
  