Because you're eagerly casting variables to constants in `matchArg` then later on `hasNestedArgs` would no longer fail with a nested variable error.
I'd suggest to expand the comment to "S!1 is instantiated, not S!num".