(int, int) foo((int, {bool b}) inputRecord, int x) {
if (inputRecord.b) return (42, 42);
return (1, 1, );
}

(int, int) bar((int, {bool b}) inputRecord) {
if (inputRecord.b) return (42, 42);
return (1, 1, );
}

class Baz {
(int, int) foo(int x) => (42, 42);
}

([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] foo[StringToken]([BeginToken]([BeginToken]int[StringToken],[SimpleToken] {[BeginToken]bool[StringToken] b[StringToken]}[SimpleToken])[SimpleToken] inputRecord[StringToken],[SimpleToken] int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
if[KeywordToken] ([BeginToken]inputRecord[StringToken].[SimpleToken]b[StringToken])[SimpleToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
return[KeywordToken] ([BeginToken]1[StringToken],[SimpleToken] 1[StringToken],[SimpleToken] )[SimpleToken];[SimpleToken]
}[SimpleToken]

([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] bar[StringToken]([BeginToken]([BeginToken]int[StringToken],[SimpleToken] {[BeginToken]bool[StringToken] b[StringToken]}[SimpleToken])[SimpleToken] inputRecord[StringToken])[SimpleToken] {[BeginToken]
if[KeywordToken] ([BeginToken]inputRecord[StringToken].[SimpleToken]b[StringToken])[SimpleToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
return[KeywordToken] ([BeginToken]1[StringToken],[SimpleToken] 1[StringToken],[SimpleToken] )[SimpleToken];[SimpleToken]
}[SimpleToken]

class[KeywordToken] Baz[StringToken] {[BeginToken]
([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] foo[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken][SimpleToken]
