enum e1 { a, } e1-arg: func(x: e1) e1-result: func() -> e1 union u1 { u32, float32, } u1-arg: func(x: u1) u1-result: func() -> u1 record empty {} variant v1 { a, b(u1), c(e1), d(string), e(empty), f, g(u32), } v1-arg: func(x: v1) v1-result: func() -> v1 bool-arg: func(x: bool) bool-result: func() -> bool option-arg: func( a: option, b: option>, c: option, d: option, e: option, f: option, g: option>, ) option-result: func() -> tuple< option, option>, option, option, option, option, option>, > variant casts1 { a(s32), b(float32), } variant casts2 { a(float64), b(float32), } variant casts3 { a(float64), b(u64), } variant casts4 { a(u32), b(s64), } variant casts5 { a(float32), b(s64), } variant casts6 { a(tuple), b(tuple), } casts: func( a: casts1, b: casts2, c: casts3, d: casts4, e: casts5, f: casts6, ) -> tuple< casts1, casts2, casts3, casts4, casts5, casts6, > expected-arg: func( a: expected, b: expected, c: expected, d: expected, tuple<>>, e: expected, f: expected>, ) expected-result: func() -> tuple< expected, expected, expected, expected, tuple<>>, expected, expected>, > enum my-errno { bad1, bad2, } return-expected-sugar: func() -> expected return-expected-sugar2: func() -> expected return-expected-sugar3: func() -> expected return-expected-sugar4: func() -> expected, my-errno> return-option-sugar: func() -> option return-option-sugar2: func() -> option expected-simple: func() -> expected record is-clone { v1: v1, } is-clone-arg: func(a: is-clone) is-clone-return: func() -> is-clone