sS compareMapsVerbose(Map a, Map b) { ret hijackPrint(r { if (a.size() != b.size()) ret with print("Size of map differs"); for (O key, O value : (Map) a) { if (!b.containsKey(key)) print(key + " not found in map 2"); else { O value2 = b.get(key); if (!eq(value, value2)) print("values for key " + key + " differ"); else print("values for key " + key + " ok"); } } }); }