after posting this, I realised that the reason why it's valid syntax is because it is considering obj to be the deafult argument. I would argue that defaults for destructured arguments doesn't conceptually make a whole lot of sense, but it seems to work...
no, I hadn't seen that. it looks really great, actually! so the syntax, using her proposal would be:
const fn = ({h} as ctx, [first] as arr) => {
// ...
}
however her proposal does not show off what I suggested, only the assignment of the inner match to a variable (inside the destructured argument). I looked briefly through the issues to see if that's mentioned, and it looks like there is one.
I'll forward my idea on to there. thanks for sharing this proposal