use sealed::sealed; fn main() { trait Foo {} trait Bar {} #[sealed(erase)] trait Trait {} struct Implementor {} #[sealed(erase)] impl Trait for Implementor where T: Foo + Bar {} }