Technically you need to examine the result of `ClassIdent.apply(...)` in case it returns an object, and (if so) replace `resultIdent` with that new value. I realize this is kind of pedantic, but I mention it as another argument in favor of handling logic like this inside some kind of runtime abstraction, rather than generating code that checks this case every time a `...` operator is used.