Isn't type_contents a recursive property of the type? At first glance this looks like it disallows `static FOO: (Option<~str>, Option<~str>) = (None, None);` because it "owns owned", but I may be misunderstanding