anchor.diff:      ReqInfo = #req_info{request = Request,
                           user_data = Callback,
                           target_set = TargetSet},
  -    % What if `ok' is returned (meaning request was not processed)
  +    % What if `ok' is returned (meaning request was not processed)?
       {error, _Reason} = next_uri(ReqInfo, none),
       ok.
   
  
positive.code: -compile({parse_transform, do}).
  
  %% API
  -export([start_link/0, create_request/2, send_request/2, send_request_sync/1]).
  
  %% Server callbacks
  -export([init/1, terminate/2, code_change/3]).
  
negative.code: send_request(Request, Callback) when is_record(Request, sip_request) ->
      ok = gen_server:cast(?SERVER, {send_request, Request, Callback}).
  
  %% @doc Send the request asynchronously. Responses will be provided via
  %% `{response, Response}' messages delivered to the caller
  %% @end
  -spec send_request(sip_message()) -> ok.
  send_request(Request) when is_record(Request, sip_request) ->
      Pid = self(),
      Callback = fun({ok, Response}) -> Pid ! {response, Response} end,
      ok = gen_server:cast(?SERVER, {send_request, Request, Callback}).
  
  
  %% @doc Send the request synchronously
  %% FIXME: Does not work with provisional responses!!!
  %% @end
  -spec send_request_sync(sip_message()) -> {ok, #sip_response{}} | {error, Reason :: term()}.
  send_request_sync(Request) when is_record(Request, sip_request) ->
  