// Note: impl on a slice impl foo for &[int] { fn sum() -> int { let mut sum = 0; for vec::each(self) |e| { sum += e; } ret sum; } } fn call_sum(x: &[int]) -> int { x.sum() } fn main() { let x = ~[1, 2, 3]; let y = call_sum(x); #debug["y==%d", y]; assert y == 6; let x = ~[mut 1, 2, 3]; let y = x.sum(); #debug["y==%d", y]; assert y == 6; let x = ~[1, 2, 3]; let y = x.sum(); #debug["y==%d", y]; assert y == 6; }