tag option[T] { some(T); none; } type r[T] = {mutable v: [option]}; fn f[T]() -> [T] { ret ~[]; } fn main() { let r: r = {mutable v: ~[]}; r.v = f(); }