   # to replace those with nil for consistency.
   defp nillify(l) do
     lc s in l do
-      if :erlang.size(s) > 0 do
+      if size(s) > 0 do
         s
       else:
         nil

                   fragment: nil, authority: nil,
                   userinfo: nil, host: nil, port: nil,
                   specifics: nil]

  @moduledoc """
  Utilities for working with and creating URIs.

  Unpercent (URL) decodes a URI.
  """
  def url_decode(s) when is_binary(s), do: :unicode.characters_to_binary(list_to_binary(url_decode(binary_to_list(s))))
  def url_decode([?%, hex1, hex2 | tail]), do: [bsl(hex2dec(hex1), 4) + hex2dec(hex2) | url_decode(tail)]
  def url_decode([head | tail]), do: [check_plus(head) | url_decode(tail)]
  def url_decode([]), do: []

