1 2 3 4 5 6 7 8 9 10 11 12 13
trait Foo: PartialOrd + PartialOrd<<Self as Foo>::A> { type A; } trait Bar { type B: Foo; fn bar(&self) -> Self::B; } fn baz<T: Bar>(x: T, y: T) -> bool { x.bar() < y.bar() }