EObject key = matcher.getTupleKey(keypos1);
if (key == null) {
vals = matcher.matching_values_bag(vals, (Map<EObject, IPersistentCollection>) map);
} else {
IPersistentCollection coll = (IPersistentCollection) map.valAt(key);
if (coll != null) {
vals = matcher.matching_values_coll(vals, coll.seq());
}
}
int count = 0;
for (; !vals.isNil(); vals = vals.tail()) {
try {
ETuple val = (ETuple) vals.head();
key = val.elm(keypos1);
IPersistentCollection coll = (IPersistentCollection) map.valAt(key);
if (coll instanceof IPersistentSet) {
IPersistentSet set = (IPersistentSet) coll;
set = set.disjoin(val);
if (set != coll) {