anchor.diff:           "Actual response:~n~p~n",
            [ReqFile, Request, ExpResponse, ActualResponse]).
   
  -read_request(RequestFile, RequestParams, Params) ->
  -  Data    = parse_file(RequestFile, Params),
  +read_request(RequestFile, RequestParams, SubstituteParams) ->
  +  Data    = parse_file(RequestFile, SubstituteParams),
     Headers = lk("headers", Data),
  -  RawBody = read_body(RequestFile, Params),
  +  RawBody = read_body(RequestFile, SubstituteParams),
     #request{ url      = lk(url, RequestParams, lk("url", Data))
             , host     = lk(host, RequestParams, lk("host", Data))
             , port     = lk(port, RequestParams, lk("port", Data))
  
positive.code: %%% * Tags with special meaning in all files:
  %%%    "<<01"    Recall stored value. 01 can be any two (alphanumeric)
  %%%              characters
  %%%    ">>key<<" Substitute with key with parameter passed in parameter list in
  %%%              run/3
  %%%
  %%% * Any difference between expected and actual responses will cause a failure.
  %%%
  
negative.code: %%%
  %%% * Url can be given either as a "url" parameter or as host/port/ssl/path
  %%%   Default host is 127.0.0.1 in run/1 but could be passed in run/2
  %%%   as well. Request parameters override the ones in the request files.
  %%%
  %%% * Tags with special meaning in response files. Try not to overuse these:
  %%%    ">>_"   Match anything (i.e. no real validation, only check existence)
  