subtle bug! in cases where the types of recur expressions do not line up with the types computed from loop bindings, we have to reanalyze the loop. if that happens *and* one of the bindings shares a name with a binding in an outer scope #magic drops the ball. i live for this.