static Lisp clParse(S s) { L tok = tok_groupRoundBrackets(s); if (l(tok) == 1) null; Lisp l = lisp(unquote(tok.get(1))); for (int i = 3; i < l(tok); i += 2) { S t = tok.get(i); if (t.startsWith("(") && t.endsWith(")")) l.add(assertNotNull(clParse(dropFirstAndLast(t)))); else l.add(lisp(aiUsing(unquote(t)))); } ret l; } static L clParse(L l) { ret map(f clParse, l); }