anchor.diff:  %% @private
   url_encode(Binary) when is_binary(Binary) ->
       url_encode(unicode:characters_to_list(Binary));
  +
  +url_encode(Atom) when is_atom(Atom) ->
  +    url_encode(atom_to_binary(Atom, utf8));
   
   url_encode(String) ->
       url_encode(String, []).
  
positive.code:     end,
      NormHeaders = [
          {nklib_util:to_lower(Name), to_bin(Value)}
          || {Name, Value} <- maps:to_list(Headers3)
      ],
      SortedHeaders = lists:keysort(1, NormHeaders),
      CanonicalHeaders = [[Name, $:, Value, $\n] || {Name, Value} <- SortedHeaders],
  
negative.code:     key => string()|binary(),
      secret => string()|binary(),
      path => string() | binary(),            %% Uri-encoded (except for S3)
      scheme => http | https,                 %% Default https
      host => string() | binary(),            %% AWS used if not specified
      port => integer(),
      headers => [{string()|binary()|atom(), string()|binary()}],
      params => #{string()|binary()|atom() => string()|binary()},
      meta => #{string()|binary()|atom() => string()|binary()},
      hash => binary,                         %% crypto:hash(sha256, Body)
  