@fasterthanlime naming of trait implementations then an explicit way to bring one of them into scope (“use” ?) and a way to specify them per-callsite.
The current syntax would be the equivalent of allowing anonymous implementations that are automatically applicable to any scope where no other named implementation has been specified.
impl Clone as MyClone for u32 {
use lib::MyClone;
// or
let x: u32 + MyClone = 42;