anchor.diff:      resp_type,
       limit,
       include_docs,
  -    conflicts
  +    conflicts,
  +    timeout,
  +    timeout_fun
   }).
   
   %% @type Req -> #httpd{} | {json_req, JsonObj()}
  
positive.code:         fun(CallbackAcc) ->
              {Callback, UserAcc} = get_callback_acc(CallbackAcc),
              UserAcc2 = start_sending_changes(Callback, UserAcc, Feed),
              {ok, #changes_acc{seq = LastSeq, user_acc = UserAcc3}} =
                  send_changes(
                      Args#changes_args{feed="normal"},
                      Callback,
                      UserAcc2,
                      Db,
                      StartSeq,
                      <<>>,
                      true),
              end_sending_changes(Callback, UserAcc3, LastSeq, Feed)
          end
  
negative.code:     fwd ->
          Since
      end,
      % begin timer to deal with heartbeat when filter function fails
      case Args#changes_args.heartbeat of
      undefined ->
          erlang:erase(last_changes_heartbeat);
      Val when is_integer(Val); Val =:= true ->
          put(last_changes_heartbeat, now())
      end,
  
      if Feed == "continuous" orelse Feed == "longpoll" ->
          fun(CallbackAcc) ->
              {Callback, UserAcc} = get_callback_acc(CallbackAcc),
  