anchor.diff:  
   -type state() :: #state{}.
   
  +-define(STOP, stop).
  +
   %%%===================================================================
   %%% API
   %%%===================================================================
  
positive.code:     {noreply, NewState :: state()} |
      {noreply, NewState :: state(), timeout() | hibernate} |
      {stop, Reason :: term(), NewState :: state()}.
  handle_cast(Request, #state{} = State) ->
      ?log_bad_request(Request),
      {noreply, State}.
  
negative.code:     {ok, pid()} | {error, Reason :: term()}.
  start_link(Bucket, Scope, Callback, Opts, LinkedProcesses) ->
      gen_server:start_link(?MODULE, [Bucket, Scope, Callback, Opts, LinkedProcesses], []).
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Asynchronously stops CouchBase changes stream.
  %% @end
  %%--------------------------------------------------------------------
  -spec stop_async(pid()) -> ok.
  stop_async(StreamPid) ->
      gen_server:cast(StreamPid, ?STOP).
  
  %%%===================================================================
  %%% gen_server callbacks
  