oops, stray trailing whitespace *tsk-tsk*;
+item;
silly me, I forgot recur could be used directly on a function, not just in a loop construct - much cleaner looking;