trait Q {} trait Foo where u32: Q { fn foo(&self); } impl Q<()> for u32 {} impl Foo for () { fn foo(&self) { println!("foo!"); } } fn main() { let _f: Box = //~ ERROR `Foo` cannot be made into an object Box::new(()); //~ ERROR `Foo` cannot be made into an object }