I tried that earlier, but didn't succeed because ```@List<T>``` cannot be referenced using ```&'a List<T>```:
```
/Users/bruno.d/Work/rust/src/libcollections/list.rs:55:33: 55:44 error: mismatched types: expected `std::option::Option<&'a list::List<T>>` but found `std::option::Option<@list::List<T>>` (expected &-ptr but found @-ptr)
/Users/bruno.d/Work/rust/src/libcollections/list.rs:55                     self.next = Some(*tail);
```