Field offsets

[Rendered view](https://github.com/Zoxc/rfcs/blob/field-offsets/active/0000-field-offsets.md)
I don't understand this example. What is `new` doing with an `FieldOffset` object, and how does `add` work?

Can't this currently be achieved equally well with

```rust
let mut a = List::new();
let mut b = List::new();
a.add(&obj.list_a);
b.add(&obj.list_b);
```
?