     }
 }
 
-func += (lhs: inout QueryField, rhs: QueryField) {
-    return lhs.values += rhs.values
-}
-
 extension URI: Hashable {
     public var hashValue: Int {
         return description.hashValue

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

        return nil
    }

    @inline(__always) private static func parse(queryString: String) -> [String: [String?]] {
        var queries: [String: [String?]] = [:]
        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]) {
                    let values = queries[key] ?? []
                    queries[key] = values + [nil]
                }
            } else if queryElements.count == 2 {
                if let
                    key = try? String(percentEncoded: queryElements[0]),
                    value = try? String(percentEncoded: queryElements[1]) {
                    let values = queries[key] ?? []
                    queries[key] = values + ([value] as [String?])
                }
            }
        }
