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