sS javaValueToHTML(O value, Set seen default identityHashSet()) { if (!seen.add(value)) ret "see above"; if (value cast S) ret htmlEncode_quote(value); else if (value cast L) ret ol(map(value, v -> javaValueToHTML(v, seen))); else ret htmlEncode(shorten(str(value))); }