fn foo<S, T: MyTrait<S>>(elem: T) { ... } fn foo<S, T>(elem: T) where T: MyTrait<S> { ... }
fn foo<S, T: MyTrait<Thing = S>>(elem: T) { ... } fn foo<S, T>(elem: T) where T: MyTrait<Thing = S> { ... }