Is this inner loop looping over the struct fields in the actual type declaration, while the outer one is looping over those in the construction expression, i.e. this loop is trying to find the declaration-field that matches the one that's currently under consideration?

It seems like the `match` and lookup above can be moved outside the outer loop?