# programming languages ​​- LET REC recursive expression static writing rule

I'm taking a course in programming languages ​​and I have a question regarding the writing rules for a recursive `let rec` Expression in a static writing system.

To be more specific, we are using the textbook. The essentials of programming languages ​​(3e) – Friedman & Wand.

To give some general information, here is how the author describes the writing rule for a normal `leave` Binding expression:

To describe it briefly for anyone who is not familiar with the notation, `kind of` is a function used to evaluate the type of the given expression.

According to the typing rule, we evaluate `exp1` First, what would give us type. $$t_1$$. Then we extend our current environment so that $$var$$ is assigned to $$t_1$$. Using this new environment, we evaluate the $$body$$ From the expression that our final type gives us.

This is how a `let-rec` The typing rule of the recursive link is defined:

The main problem I have is how to understand the order of evaluation. According to the writing rule, it seems that we are first expanding the environment with $$var$$ Y $$p$$, but where do we get the types to map them?