Contextual keywords often work decently for items, like union does.
In expressions, though, they’re tougher, since so many things have meaning already. like catch { x } could be a struct expression (of type catch, using field initializer short-hand).
And of course macros make everything hard…