use a more precise (covariant) return type for BitVectorIntSet.intersection