sclass TreeHasKeyMap> extends HasKeyMap { *() { init(); } *(Iterable l) { init(); addAll(l); } void init { map = new TreeMap; } TreeMap map() { ret (TreeMap) map; } A lastKey() { ret main lastKey(map()); } B higher(B a) { ret a == null ?: higherValue(map(), a.getKey()); } }