sclass HasKeyMap> /*extends AbstractMap*/ implements Iterable { new Map map; *() {} //*(Map map) { putAll(this.map, map); } *(Iterable l) { addAll(l); } void addAll(Iterable l) { fOr (b : l) if (b != null) map.put(b.key(), b); } public Iterator iterator() { ret valueIterator(map); } A firstKey() { ret main firstKey(map); } public int size() { ret map.size(); } Set keys aka keySet() { ret map.keySet(); } }