trait T { default type T = Bar; default const f: u8 = 0; default fn foo() {} default unsafe fn bar() {} } impl T for Foo { default type T = Bar; default const f: u8 = 0; default fn foo() {} default unsafe fn bar() {} } default impl T for () {} default unsafe impl T for () {}