\d d trace:{[t],5:t} html:{[t] d:2_,/"\r\n",/:disp t s:_ci 179 196 218 191 t:"&#",/:4$9474 9472 9484 9488 r:"
"
 r,:_ssr/[d;s;t]
 r,:"
" r} V:_ci 179 H:_ci 196 L:_ci 218 R:_ci 191 text:{[t]_ssr/[;V,H,L,R;"|-++"]'disp t} tree:{[a;b;c] if[vb:-3=4:b:loop[_f;data[1]]b;b,:] if[vc:-3=4:c:loop[_f;data[1]]c;c,:] sb:^b sc:^c r:*sb|sc b:take[r;sb]b c:take[r;sc]c apply[a;vb;vc;sb 1;1+sc 1;b]" ",'c} take:{[r;s;m]m,((r-*s),s 1)#""} apply:{[a;vb;vc;cb;cc;b;c] a:"^@"a~{} ib::[vb;_.5*cb;(b[0]_lin"^@")?1] ic::[vc;_.5*cc;(c[0]_lin"^@")?1] b:(,@[cb#"";ib;:;V]),b c:(,@[cc#"";ic;:;V]),c j:ib+!1+(cb+ic)-ib r:@[(cb+cc)#"";j;:;H] r[j[0],-1#j]:L,R r:@[r;j[0]+_.5*j[-1+#j]-*j;:;a] (,r),b,'c} string:{[a;b;c]loop[_f;data[0];b]," ",{:[{}~*c;1!")(",;::]x}loop[_f;data[0];c]} loop:{[f;g;t]:[@t;g t;t[0]_in({};{`pair});f . t;g t]} data:{[b;t]:[~#t;"nil";@t;atom t;t[0]_in({`a};{`b});a[b]. t;nvu[b]. t]} a:{:[x;($y[]),":";""],:[`a~y[];z[_n];z[_n;_n]][]} C:((0n;0N;0i;0I;(););$`nan`Nan`inf`Inf`nil`null) nvu:{:[x;($y[]),":";""],:[z _in*C;C[1]C[0]?z;(y~{`v})&("[;x]}"~-5#a:5:z);a[1],".";vec[x;z]a]} vec:{:[@y;:[(~x)&(4:y)_in 1 2 4;1!")(",z;z];x;z;1!")(",z]} atom:{[t]:[~7=4:t;pad@$t;t _in({`cond};{`cons};{`pair};{`head};{`tail};{`eq});$t[]]} pad:{:[1=#x;" ",x," ";2=#x;x," ";x]} sqz:{{_ssr[x;" ";" "]}/_ssr/[x;("( ";" (";" )";") ";" `";" `");"(())``"]} disp:{{:[4:x;,x;x]}/loop[tree;data[1]]x} code:{sqz@:[4:x;$x;x]}/loop[string;data[0]]@ \d ^ Disp:d.disp Code:d.code Html:d.html Text:d.text Trace:d.trace