// run-pass trait Bar {} trait Foo { type Assoc: Bar; } impl Bar for u8 {} impl Bar<3> for u16 {} impl Foo for i8 { type Assoc = u8; } impl Foo<3> for i16 { type Assoc = u16; } fn main() {}