Replies to the review, each on the line it concerns. All eight are in 9daaa42..a860da6.
Re 346. Solved from get-name-type alone, so a global names only what is declared above it.
Re 347. The type gets what a fn header gets -- macro expansion and closure resolution, no walk.
Re 348. A closure literal answers with its own type. The receiver is walked before the call helper is registered, so the struct is declared ahead of the signature naming it.
Re 342. Unsigned takes the tie whichever side it is written on, and a name with no declaration parsed has no rank to compare:
The case that prompted this — a compound form for C99 compound literals — was
resolved by giving it syntax instead of a name, so it never joins the list.
: inside #(...) ends a type and…