package foo:foo; interface lists { record other-record { a1: u32, a2: u64, a3: s32, a4: s64, b: string, c: list, } record some-record { x: string, y: other-record, c1: u32, c2: u64, c3: s32, c4: s64, } variant other-variant { a, b(u32), c(string), } variant some-variant { a(string), b, c(u32), d(list), } type load-store-all-sizes = list>; list-u8-param: func(x: list); list-u16-param: func(x: list); list-u32-param: func(x: list); list-u64-param: func(x: list); list-s8-param: func(x: list); list-s16-param: func(x: list); list-s32-param: func(x: list); list-s64-param: func(x: list); list-f32-param: func(x: list); list-f64-param: func(x: list); list-u8-ret: func() -> list; list-u16-ret: func() -> list; list-u32-ret: func() -> list; list-u64-ret: func() -> list; list-s8-ret: func() -> list; list-s16-ret: func() -> list; list-s32-ret: func() -> list; list-s64-ret: func() -> list; list-f32-ret: func() -> list; list-f64-ret: func() -> list; tuple-list: func(x: list>) -> list>; string-list-arg: func(a: list); string-list-ret: func() -> list; tuple-string-list: func(x: list>) -> list>; string-list: func(x: list) -> list; record-list: func(x: list) -> list; variant-list: func(x: list) -> list; load-store-everything: func(a: load-store-all-sizes) -> load-store-all-sizes; } world lists-world { import lists; }