1package foo:foo 2 3interface lists { 4 list-u8-param: func(x: list<u8>) 5 list-u16-param: func(x: list<u16>) 6 list-u32-param: func(x: list<u32>) 7 list-u64-param: func(x: list<u64>) 8 list-s8-param: func(x: list<s8>) 9 list-s16-param: func(x: list<s16>) 10 list-s32-param: func(x: list<s32>) 11 list-s64-param: func(x: list<s64>) 12 list-float32-param: func(x: list<float32>) 13 list-float64-param: func(x: list<float64>) 14 15 list-u8-ret: func() -> list<u8> 16 list-u16-ret: func() -> list<u16> 17 list-u32-ret: func() -> list<u32> 18 list-u64-ret: func() -> list<u64> 19 list-s8-ret: func() -> list<s8> 20 list-s16-ret: func() -> list<s16> 21 list-s32-ret: func() -> list<s32> 22 list-s64-ret: func() -> list<s64> 23 list-float32-ret: func() -> list<float32> 24 list-float64-ret: func() -> list<float64> 25 26 tuple-list: func(x: list<tuple<u8, s8>>) -> list<tuple<s64, u32>> 27 string-list-arg: func(a: list<string>) 28 string-list-ret: func() -> list<string> 29 tuple-string-list: func(x: list<tuple<u8, string>>) -> list<tuple<string, u8>> 30 string-list: func(x: list<string>) -> list<string> 31 32 record some-record { 33 x: string, 34 y: other-record, 35 z: list<other-record>, 36 c1: u32, 37 c2: u64, 38 c3: s32, 39 c4: s64, 40 } 41 record other-record { 42 a1: u32, 43 a2: u64, 44 a3: s32, 45 a4: s64, 46 b: string, 47 c: list<u8>, 48 } 49 record-list: func(x: list<some-record>) -> list<other-record> 50 record-list-reverse: func(x: list<other-record>) -> list<some-record> 51 52 variant some-variant { 53 a(string), 54 b, 55 c(u32), 56 d(list<other-variant>), 57 } 58 variant other-variant { 59 a, 60 b(u32), 61 c(string), 62 } 63 variant-list: func(x: list<some-variant>) -> list<other-variant> 64 65 type load-store-all-sizes = list<tuple< 66 string, 67 u8, 68 s8, 69 u16, 70 s16, 71 u32, 72 s32, 73 u64, 74 s64, 75 float32, 76 float64, 77 char, 78 >> 79 load-store-everything: func(a: load-store-all-sizes) -> load-store-all-sizes 80} 81 82world the-lists { 83 import lists 84 export lists 85} 86