name clash with lets in recursive calls solved