package foo:foo; interface option-simple { // NB: this record used to be empty, but that's no longer valid, so now it's // non-empty. Don't want to delete the whole test however. record empty { not-empty-anymore: bool, } record o-one { a: option, } record o-nested { a: option>, } type o1 = option; type o2 = option; type o3 = option; type o4 = option>; oint-arg: func(x: option); oint-result: func() -> option; o1-arg: func(x: o1); o1-result: func() -> o1; o2-arg: func(x: o2); o2-result: func() -> o2; o3-arg: func(x: o3); o3-result: func() -> o3; o4-arg: func(x: o4); o4-result: func() -> o4; } world my-world { import option-simple; export option-simple; }