sclass NamedVar extends Var { S name; *() {} *(S *name) {} *(S *name, A value) { super(value); } toString { ret or(name, "anonymous var") + "=" + super.toString(); } }