package foo:records; interface records { record single { f: u8, } record scalars { a: u32, b: u32, } flags really-flags { a, b, c, d, e, f, g, h, i, } record aggregates { a: scalars, b: u32, c: single, d: string, e: really-flags, } type int-typedef = s32; type tuple-typedef2 = tuple; tuple-arg: func(x: tuple); tuple-result: func() -> tuple; single-arg: func(x: single); single-result: func() -> single; scalar-arg: func(x: scalars); scalar-result: func() -> scalars; flags-arg: func(x: really-flags); flags-result: func() -> really-flags; aggregate-arg: func(x: aggregates); aggregate-result: func() -> aggregates; typedef-inout: func(e: tuple-typedef2) -> s32; } world records-world { import records; export records; }