// second type parameter defaults to Object sclass WithTrail extends Var { B trail; *() {} *(A value) { super(value); } *(B *trail, A value) { super(value); } toString { if (trail == null) ret super.toString(); ret super.toString() + "\n" + indentx("[Trail: " + trail + "]"); } }