package foo:foo; world module { export a: func(); export b: func(a: s8, b: s16, c: s32, d: s64) -> string; export c: func() -> tuple; export bar: interface { flags x { a, b, c } a: func(x: x); } export foo: interface { variant x { a, b(string), c(s64) } a: func(); b: func(x: string) -> x; c: func(x: x) -> string; } }