local-expand
Since `parser` works in an expression context, it's simplest to force an expression context.
syntax-local-get-shadower
The old use relied on a more or less accidental correspondence between the `$` variables introduced by `parser` and get-shadower before those variables are bound. Get rid of it in favor of normal hygiene bending.