Replacing ```Option<T>``` with ```Option<&'a T>``` on ```next()```gives the following compilation error because of different signatures between Iterator's trait and this:
```
/Users/bruno.d/Work/rust/src/libcollections/list.rs:32:5: 40:6 error: method `next` has an incompatible type: expected type parameter but found &-ptr
/Users/bruno.d/Work/rust/src/libcollections/list.rs:32     fn next(&'a mut self) -> Option<&'a T> {
/Users/bruno.d/Work/rust/src/libcollections/list.rs:33         match *(self.current) {
/Users/bruno.d/Work/rust/src/libcollections/list.rs:34             Cons(ref value, ref next) => {
/Users/bruno.d/Work/rust/src/libcollections/list.rs:35                 self.current = *next;
/Users/bruno.d/Work/rust/src/libcollections/list.rs:36                 Some(value)
/Users/bruno.d/Work/rust/src/libcollections/list.rs:37             },
```