there is existing discussion in https://github.com/rust-lang/rust/issues/138215 and we seem to have implemented a lot of the functionality that is being proposed.