sclass AutoInitVar extends Var { O make; bool has; Lock lock = lock(); *() {} *(O *make) {} A get() { if (has) ret super.get(); lock lock; if (has) ret super.get(); set(pcallF(make)); make = null; has = true; ret super.get(); } }