Cross crate variant privacy

r? @nikomatsakis