Expressive Rust Generics with Where Clause