intermediate code is like FP, but with fewer built-ins, to wit:
form				optimizations and remarks
<aa, action, f>			action=aa, filter
<arith, op>			op={plus,times,minus,div,mod}
<compose, f, g, ... h>
<cond, p, t, ... p, t, e>	optimize common subexpr in p's, t's; case
<constant, x>
<construct, f, g, ..h>
<define, name, f, g>		f is init, g eval, e.g. see def. of dist{l,r}
<insert, type, f>		type={l,r,t}. Optimize f = <arith, f = <cond
<istype, t, u, ... v>		int,float,num,string,char,vector,<size,type>...
<mktype, from, to>		string->atom, int->char, char->int...
<resize, left, center, right>	left,right={_<>,_-1,_<x>} see apnd{l,r}, tl{r}
<select, type, sel>		type={l,r}
<while, p, f>
arguments
getfilebytes			returns _error, _<>, <45, 13, ... >
id
length

apndl:	 <resize, <construct, <select, l, <constant, 1>>,
	  <select, r, <constant, 1>>, <constant, <>>>

distl:	 <define, el, <select, l, <constant, 1>>,
	  <compose, <aa, <construct, el, id>>, <select, r, <constant, 1>>>>

explode: <mktype, atom, <<>, char>>

implode: <mktype, <<>, char>, atom>

tlr:	 <resize, <constant, <>>, id, <constant, -1>>
