У Rust є скорочення для запису факту того, що узагальнений тип обмежений якимось трейтом:
fn my_function(foo: impl Foo) { ... }
Що еквівалентно запису:
fn my_function<T>(foo: T) where T:Foo { ... }