Storing both `head` and `next` seems a little odd, do you think you could get away with just:

```rust
struct Items<'a, T> {
    priv cur: Option<&'a List<T>>
}
```