record list-in-record1 { a: string }
record list-in-record2 { a: string }
record list-in-record3 { a: string }
record list-in-record4 { a: string }
type list-in-alias = list-in-record4

list-in-record1: func(a: list-in-record1)
list-in-record2: func() -> list-in-record2
list-in-record3: func(a: list-in-record3) -> list-in-record3
list-in-record4: func(a: list-in-alias) -> list-in-alias

type list-in-variant1-v1 = option<string>
type list-in-variant1-v2 = expected<unit, string>
union list-in-variant1-v3 { string, float32 }
list-in-variant1: func(a: list-in-variant1-v1, b: list-in-variant1-v2, c: list-in-variant1-v3)

type list-in-variant2 = option<string>
list-in-variant2: func() -> list-in-variant2

type list-in-variant3 = option<string>
list-in-variant3: func(a: list-in-variant3) -> list-in-variant3

enum my-errno { success, a, b }
errno-result: func() -> expected<unit, my-errno>

type list-typedef = string
type list-typedef2 = list<u8>
type list-typedef3 = list<string>
list-typedefs: func(a: list-typedef, c: list-typedef3) -> tuple<list-typedef2, list-typedef3>

list-of-variants: func(a: list<bool>, b: list<expected<unit, unit>>, c: list<my-errno>) -> tuple<list<bool>, list<expected<unit, unit>>, list<my-errno>>
