anchor.diff:  
   -export([send_response/4]).
   
  --export([mk_req/7]). %% useful when testing.
  +-export([mk_req/7, mk_req/10]). %% useful when testing.
   
   %% Exported for looping with a fully-qualified module name
   -export([accept/4, handle_request/4, chunk_loop/1, split_args/1,
  
positive.code:       Socket    :: elli_tcp:socket() | undefined,
        Callback  :: elli_handler:callback(),
        Req       :: elli:req().
  mk_req(Method, RawPath, Headers, Body, V, Socket, {Mod, Args} = Callback) ->
      case parse_path(RawPath) of
          {ok, {Path, URL, URLArgs}} ->
              #req{method   = Method, path     = URL,    args    = URLArgs,
                   version  = V,      raw_path = Path,   headers = Headers,
                   body     = Body,   pid      = self(), socket  = Socket,
                   callback = Callback};
          {error, Reason} ->
              handle_event(Mod, request_parse_error,
                           [{Reason, {Method, RawPath}}], Args),
              send_bad_request(Socket),
              elli_tcp:close(Socket),
              exit(normal)
      end.
  
  %%
  %% HEADERS
  
negative.code: 
  parse_path({abs_path, FullPath}) ->
      case binary:split(FullPath, [<<"?">>]) of
          [URL]       -> {ok, {undefined, {FullPath, split_path(URL), []}}};
          [URL, Args] -> {ok, {undefined, {FullPath, split_path(URL), split_args(Args)}}}
      end;
  parse_path({absoluteURI, Scheme, Host, Port, Path}) ->
      {{Scheme, Host, Port}, parse_path({abs_path, Path})};
  parse_path(_) ->
      {error, unsupported_uri}.
  
  