anchor.diff:  %% list of all available options, please check OTP's ssl module manpage.
   %% @end
   -spec request(string(), 1..65535, true | false, string(), atom() | string(),
  -    headers(), iolist(), pos_integer() | infinity, [option()]) -> result().
  +    headers(), iodata(), pos_integer() | infinity, [option()]) -> result().
   request(Host, Port, Ssl, Path, Method, Hdrs, Body, Timeout, Options) ->
       verify_options(Options),
       Args = [self(), Host, Port, Ssl, Path, Method, Hdrs, Body, Options],
  
positive.code: %% Would be the same as calling
  %% `send_body_part(UploadState, BodyPart, infinity)'.
  %% @end
  -spec send_body_part(upload_state(), iolist() | 'http_eob') -> result().
  send_body_part({Pid, Window}, IoList) ->
      send_body_part({Pid, Window}, IoList, infinity).
  
  %% @spec (UploadState :: UploadState, BodyPart :: BodyPart, Timeout) -> Result
  %%   BodyPart = iolist() | binary()
  %%   Timeout = integer() | infinity
  %%   Result = {error, Reason} | UploadState
  %%   Reason = connection_closed | connect_timeout | timeout
  
negative.code: %%   Hdrs = [{Header, Value}]
  %%   Header = string() | binary() | atom()
  %%   Value = string() | binary()
  %%   RequestBody = iodata()
  %%   Timeout = integer() | infinity
  %%   Options = [Option]
  %%   Option = {connect_timeout, Milliseconds | infinity} |
  