Immovable types and self-referencing structs

I've had this idea which is similar to the ExplicitMove trait but is more restrictive (The RefMove trait must be implemented when the struct contains field with ref-lifetimes) and is called implicitly. The idea is to apply default move semantics first, but fields which have a ref-lifetime are in an uninitialized state. They must be initialized by the method specified by the RefMove trait.

https://internals.rust-lang.org/t/improving-self-referential-structs/4808/65?u=mrborrowck