sclass WithSideValue extends Var { A sideValue; *() {} *(A *sideValue, B value) { super(value); } *(B value) { super(value); } A sideValue() { ret sideValue; } toString { ret prependSquareBracketed(sideValue) + super.toString(); } }