Isolated closures and @concurrent functions

Sorry for taking so long to respond here. These are complex topics!

One thing I have found very tricky is the relationship between @isolated(any) , @Sendable and sending. In the @isolated(any) proposal, it is mentioned that originally the intention was to make @isolated(any) imply @Sendable. However, this was removed because RBI and sending were starting to take shape. But due to unfortunate timing, this was never revisited.

@isolated(any) functions really need to be sending at a minimum, and I believe that should be implied. I hope to see some movement here before too long.

Now, the proposal also goes into a little detail on what it would mean for an explicit type to be included as an argument to @isolated. And my understanding, which is superficial, is that such a change would be extremely complex.

Now, if I'm following what you are saying, I think you are heading towards the idea that @isolated(MainActor) would be equivalent to @MainActor. But, there's a problem. Because, at least today, it is possible to create new instances of type MainActor that are not MainActor.shared.

As for the case of isolated parameters, this is an area of great complexity and subtly. Closure captures do affect static isolation, but I find this to be both unintuitive and problematic in a number of situations. I'm not saying what you've suggested is unreasonable - more that how things are implemented today is unreasonable.