\d c \l s compile:{[v;e;w]val[post]com[v]. val[pre]'(e;w)} com:{[v;e;w]wh_[:[#v;e abs/|v;abs[e]v]]w} abs:{[e;v]:[A~*e;exp;4=4:e;var;con][e]v} con:{[e;v](A;`K;e)} var:{[e;v]:[v~e;`I;(A;`K;e)]} exp:{[e;v]opt .(1_ e)abs\:v} err:{:[_n~y;'"parse: ",x;y]} i:{(A;I;x)} list:{(){(A;(A;C;y);x)}/|x,()} val:{[f;e]:[~4:e;_f[f]'e;-3=4:e;f[`$*e]1_ e;e]} pre:{:[x _in`V`Y;`$;($x),]y} post:{ :[`H=x ;{C} `Z=x ;{} `L=x ;{()} `G=x ;i@. 1!"}{x", `C=x ;{i(L;R;L_;R_)(,"{";,"}";"{:";"}:")?x} `O=x ;{O} `A=x ;{(A;i V;`$".k.",x)} `J=x ;(H;T)($`hd`tl)? `F=x ;{i err[x]@.(-"."~*1_ x)_ x} `N=x ;.: `Q=x ;.: I]y} opt:{ kx:(A;`K)~2#x ky:(A;`K)~2#y bx::[A~*x;(A;`B)~2#x 1;0] by::[A~*y;(A;`B)~2#y 1;0] iy:`I~y :[kx&ky ;{(A;`K;(A;x 2;y 2))} / S(Kf)(Kg) -> K(fg) kx&iy ;{y;x 2} / S(Kf)I -> f kx&by ;{(A;(A;(A;`B_;x 2);y[1]2);y 2)} / S(Kf)(Bgh) -> B*fgh kx ;{(A;(A;`B;x 2);y)} / S(Kf)g-> Bfg bx&ky ;{(A;(A;(A;`C_;x[1]2);x 2);y 2)} / S(Bfg)(Kh) -> C'fgh ky ;{(A;(A;`C;x);y 2)} / Sf(Kg)-> Cfg bx ;{(A;(A;(A;`S_;x[1]2);x 2);y)} / S(Bfg)h -> S'fgh {(A;(A;`S;x);y)}][x;y]} / Sfg wh_:{[e;w]:[~#w;e;1=#w;wh1[e].*w;whn[e].+w]} wh1:{[e;f;x;E]:[~#x;wh0;f _in,//E;why;whx][e;f;x]E} wh0:{[e;f;x;E](A;abs[e]f;E)} whx:{[e;f;x;E](A;abs[e]f;abs/[E;|x])} why:{[e;f;x;E](A;abs[e]f;(A;`Y;abs/[E;(|x),f]))} whn:{[e;f;x;E]:[|/f _lin,//E;whY;whX][e;f;x]E} whX:{[e;f;x;E](A;(A;`K;e)whU/|f;whL[x]E)} whL:{[x;E]list@{abs/[x;|y]}'[E;x]} whU:{[e;f](A;`U;abs[e]f)} whY:{[e;f;x;E](A;(A;`K;e)whU/|f;(A;`Y;(A;`K;whL[f]E)whU/|f))} \d ^ compile:c.compile