sclass FunctionTimings {
new Map data;
void time(A function, Runnable r) {
if (r == null) ret;
Average avg = mapGetOrCreate(data, function, -> new Average);
long time = nanoTime();
try {
r.run();
} finally {
time = nanoTime()-time;
avg.add(time);
}
}
Map get() { ret data; }
}