!752 class Var { new Core core; Var next; Lisp get() { ret core.value; } boolean set(Lisp value) { ret core.set(value); } void unifyWith(Var v) { core = v.core; } } class Core { Lisp value; boolean set(Lisp val) { // existing if (value != null) ret eq(value, val); // new value = val; ret true; } }