+1 thing it useful.
That reminds me topic that I read recently: Adding a "unique" flag to alloc_ref
In some sense it enables unique classes but without open functions.
Though it might a bit of side track, I wonder if classes might be addressed as well - could be covering both that way?
e.g.
class C1: Unique, Sendable {
open func foo() { ... }
}
final class C2: C1, Unique, Sendable {
override func foo() { ... }
}
While I understand that structures + protocols should cover all the cases, seems it is not always the case.
As example, I in recent thread there was a suggestion to use intermediate classes with open functions: Calling borrowing func on existential results in consumption of value