Pre-RFC: Explicit enum variant visibility (`pub enum E { pub(self) V }`)

Point taken. Though if you already have an instance, you can simply use std::mem::swap.

Nothing in particular, which is why I asked. I just realised that those are distinct operations. Later I thought it might be useful for exit statuses: the Signaled variant could be made public to match, but not public to construct, to reflect the fact that you cannot pass a signal termination status to the exit syscall. But given the hole mentioned earlier, the usefulness of it for this purpose is somewhat doubtful.