fn tail(mut iter: I) -> I where I: Iterator { iter.next(); iter } fn main() { let xs = [1, 2, 3]; let ys = tail(xs.iter()); let zs = tail(ys); println!("{:?}", zs); }