sbool mapEquals_ciValues(SS map1, SS map2) {
  if (l(map1) != l(map2)) false;
  Iterator<S> i1 = keysIterator(map1), i2 = keysIterator(map2);
  while (i1.hasNext()) {
    S key1 = i1.next(), key2 = i2.next();
    if (neqic(key1, key2)) false;
    if (neqic(map1.get(key1), map2.get(key2))) false;
  }
  true;
}