sclass LazyValueTreeMap extends TreeMap {
static new O placeholder;
O valueMaker;
LazyValueTreeMap(Collection keys, O *valueMaker) {
for (A key : unnull(keys)) put(key, placeholder);
}
public get(O key) {
B value = super.get(key);
if (value == placeholder)
put(key, value = callF(valueMaker, key));
ret value;
}
}