pub trait TraitE { type I3; } pub trait TraitD { type I3; } pub trait TraitC { type I1; type I2; } pub trait TraitB { type Item; } pub trait TraitA { fn baz< U: TraitC + TraitD + TraitE, V: TraitD >(_: U, _: V) -> Self where U: TraitB, ::Item: Copy; }