interface lists { 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-float32-param: func(x: list) list-float64-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-float32-ret: func() -> list list-float64-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 some-record { x: string, y: other-record, z: list, c1: u32, c2: u64, c3: s32, c4: s64, } record other-record { a1: u32, a2: u64, a3: s32, a4: s64, b: string, c: list, } record-list: func(x: list) -> list record-list-reverse: func(x: list) -> list variant some-variant { a(string), b, c(u32), d(list), } variant other-variant { a, b(u32), c(string), } variant-list: func(x: list) -> list type load-store-all-sizes = list> load-store-everything: func(a: load-store-all-sizes) -> load-store-all-sizes } default world the-lists { import import-lists: self.lists export export-lists: self.lists }