static class DerivedMap extends AbstractMap {
Map base;
Map additions = new HashMap;
*() {}
*(Map *base) {}
*(Map *base, Map *additions) {}
public B get(Object key) {
B b = additions.get(key);
if (b != null) return b;
return base.get(key);
}
public B put(A key, B value) {
return additions.put(key, value);
}
public Set> entrySet() {
throw fail();
}
}