//@ Here, the return type of `collect` is inferred based on the return type of our function. In general, it can return anything implementing
//@ [`FromIterator`](http://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html). Notice that `iter` gives us an iterator over
//@ borrowed `i32`, but we want to own them for the result, so we insert a `map` to dereference.
//@ Here, the return type of `collect` is inferred based on the return type of our function. In general, it can return anything implementing
//@ [`FromIterator`](http://doc.rust-lang.org/stable/std/iter/trait.FromIterator.html). Notice that `iter` gives us an iterator over
//@ borrowed `i32`, but we want to own them for the result, so we insert a `map` to dereference.