sclass CombinedStringifier is IStringifier { new CopyOnWriteArrayList> stringifiers; IStringifier defaultStringifier = new Stringifier_ToString; *(IPartialStringifier... stringifiers) { addAll(this.stringifiers, stringifiers); } public S toString(A o) { for (stringifier : stringifiers) { S s = stringifier.toStringOpt(o); if (s != null) ret s; } ret defaultStringifier.toString(o); } toString { ret formatFunctionCall CombinedStringifier( listPlus((L) stringifiers, defaultStringifier) ); } }