// provide custom privacy error for sealed traits pub mod a { pub trait Sealed: self::b::Hidden { fn foo() {} } struct X; impl Sealed for X {} impl self::b::Hidden for X {} mod b { pub trait Hidden {} } } struct S; impl a::Sealed for S {} //~ ERROR the trait bound `S: Hidden` is not satisfied fn main() {}