static S clUnparse(Lisp l) { if (l == null) ret ""; ret join(" ", concatLists(ll(conceptQuote(l.head), (L) map(f clUnparse_sub, l))); } static S clUnparse_sub(Lisp l) { ret l.empty() ? clUnparse(l) : "(" + clUnparse(l) + ")"; }