         if let fragment = fragment {
             string += "#\(fragment)"
         }
-        
+
         return string
     }
 }

        return nil
    }

    @inline(__always) private static func parse(queryString: String) -> Query {
        var queries: Query = [:]
        let queryTuples = queryString.split(separator: "&")
        for tuple in queryTuples {
            let queryElements = tuple.split(separator: "=", omittingEmptySubsequences: false)
            if queryElements.count == 1 {
                if let key = try? String(percentEncoded: queryElements[0]) {
                    queries[key] += QueryField(nil)
                }
            } else if queryElements.count == 2 {
                if let
                    key = try? String(percentEncoded: queryElements[0]),
                    value = try? String(percentEncoded: queryElements[1]) {
                        queries[key] += QueryField(value)
                }
            }
        }

            string += "?"
        }

        for (offset: queryIndex, element: key) in query.keys.sorted().enumerated() {
            for (offset: valueIndex, element: value) in query[key]!.enumerated() {
                string += "\(key)"

                if var value = try value?.percentEncoded() {
