record empty { } 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: empty, d: string, e: really-flags, } type int-typedef = s32 type tuple-typedef2 = tuple tuple-arg: func(x: tuple) tuple-result: func() -> tuple empty-arg: func(x: empty) empty-result: func() -> empty 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