def merge(other)
      new_queries = queries.map {|q1| other.queries.map {|q2| q1.merge(q2)}}.flatten.compact
      return if new_queries.empty?
      QueryList.new(new_queries)
    end
def merge(other)
      new_queries = queries.map {|q1| other.queries.map {|q2| q1.merge(q2)}}.flatten.compact
      return if new_queries.empty?
      QueryList.new(new_queries)
    end
@param queries [Array<Query>] See \{#queries}
 Merges this query list with another. The returned query list
 queries for the intersection between the two inputs.

 Both query lists should be resolved.

 @param other [QueryList]
 @return [QueryList?] The merged list, or nil if there is no intersection.