This code appears to compile. Yet, it confuses me that on a generic, when there are different generic parameters, wee can have different implemented functions. Is there a name for this 'feature' ?
In C++ this is called explicit specialization, but in Rust the term "specialization" usually refers to overlapping specializations, which C++ supports but stable Rust does not.
In any case, the ability to customize different instances, or sets of instances, of a generic type adds quite a bit of expressive power to generics.