// doesn't implement all methods yet sclass ValueOnDemandMap extends AbstractMap { Set keys; IF1 makeValue; *() {} *(Set *keys, IF1 *makeValue) {} public B get(O a) { ret !containsKey(a) ? null : makeValue.get(a); } public bool containsKey(O a) { ret keys.contains(a); } public Set> entrySet() { ret map.entrySet(); // TODO } public Set keySet() { ret keys; } public int size() { ret keys.size(); } }