Use two passes: the first binds names to locations, and the second mutates the locations to install the proper values.
What is the standard technique for implementing recursion using circular structures?