The Future Of [weak self] Rebinding

Maybe this is similar to what @anandabits has in mind, but what if instead of a sugared [guard self] construct, there was a modifier keyword used in closure capture lists to indicate that a given value needs to be guard-unwrapped? For example (strawman syntax) --

doSomething() { [required weak self] in

which would be equivalent to

doSomething() { [weak self] in
    guard let `self` = self else { return }

This could be applied to other captured values too, not just self. Any thoughts?