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