Reimplements letfn and recursion with let instead of labels.