SE-0517: UniqueBox

+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