interface org.example.complex type Enum (enum, b, c) type Type (type, b, c) type TypeEnum (type, b, c) type Interface (interface, b, c) type TypeFoo ( bool: bool, int: int, float: float, string: string, enum: ?[string]?(foo, bar, baz), type: ?TypeEnum, anon: ( foo: bool, bar: int, baz: [](a: int, b: int) ), object: object, stringset: [string]() ) method Foo( enum: (b: bool, c: int), foo: TypeFoo, interface: Interface ) -> ( a: [](b: bool, c: int), foo: TypeFoo, interface: Interface ) method Bar() -> () error ErrorFoo ( enum: ( b: bool, c: int, interface: Interface ), foo: TypeFoo, bar: (type, enum, int, bool, string, if, let), interface: Interface ) error ErrorBar ()