       iex> URI.to_string(%URI{userinfo: "bar", host: "example.org", port: 81})
       "//bar@example.org:81"
 
-      iex> URI.to_string(%URI{authority: "foo@example.com:80",
-      ...>                    userinfo: "bar", host: "example.org", port: 81})
+      iex> URI.to_string(%URI{
+      ...>   authority: "foo@example.com:80",
+      ...>   userinfo: "bar",
+      ...>   host: "example.org",
+      ...>   port: 81
+      ...> })
       "//bar@example.org:81"
 
   """

  ## Examples

      iex> URI.parse("http://elixir-lang.org/")
      %URI{scheme: "http", path: "/", query: nil, fragment: nil,
           authority: "elixir-lang.org", userinfo: nil,
           host: "elixir-lang.org", port: 80}

      iex> URI.parse("//elixir-lang.org/")
      %URI{authority: "elixir-lang.org", fragment: nil, host: "elixir-lang.org",
           path: "/", port: nil, query: nil, scheme: nil, userinfo: nil}

      iex> URI.parse("/foo/bar")
      %URI{authority: nil, fragment: nil, host: nil, path: "/foo/bar",
           port: nil, query: nil, scheme: nil, userinfo: nil}

      iex> URI.parse("foo/bar")
      %URI{authority: nil, fragment: nil, host: nil, path: "foo/bar",
           port: nil, query: nil, scheme: nil, userinfo: nil}

  """
  @spec parse(t | binary) :: t


  ## Examples

      iex> URI.merge(URI.parse("http://google.com"), "/query") |> to_string()
      "http://google.com/query"

      iex> URI.merge("http://example.com", "http://google.com") |> to_string()
      "http://google.com"

  """
