name: generating types: type_a: [foo:s32, bar:string, baz:array:s32] type_b: [foo:string] type_c: [foo:array:string] procedures: do_a: args: [a:s32, b:string, c:type_b] returns: [d:s32, e:type_a] errors: [not found, invalid id] do_b: args: [a:type_a] returns: [] errors: [] do_c: args: [] returns: [] errors: []