trait repeat { fn get() -> A; } impl @A: repeat { fn get() -> A { *self } } fn repeater(v: @A) -> repeat { // Note: owned kind is not necessary as A appears in the trait type v as repeat:: // No } fn main() { let x = &3; let y = repeater(@x); assert *x == *(y.get()); }