#[lang = "sized"] pub trait Sized {} #[lang = "add"] pub trait Add { type Output; fn add(self, rhs: RHS) -> Self::Output; } impl Add for u32 { type Output = u32; fn add(self, other: u32) -> u32 { self + other } } impl<'a> Add for &'a u32 { type Output = >::Output; fn add(self, other: u32) -> >::Output { Add::add(*self, other) } }