| void f(bool b, int i) { | 
 | print('b=$b, i=$i'); | 
 | } | 
 |  | 
 | g(int x, int y, Object o) { | 
 | f(x < y, (o as Function)()); | 
 | } | 
 |  | 
 | main() { | 
 | g(0, 1, () => 2); | 
 | } | 
 |  | 
 |  | 
 | void[KeywordToken] f[StringToken]([BeginToken]bool[StringToken] b[StringToken],[SimpleToken] int[StringToken] i[StringToken])[SimpleToken] {[BeginToken] | 
 | print[StringToken]([BeginToken]'b=[StringToken]$[SimpleToken]b[StringToken], i=[StringToken]$[SimpleToken]i[StringToken]'[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | g[StringToken]([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken],[SimpleToken] Object[StringToken] o[StringToken])[SimpleToken] {[BeginToken] | 
 | f[StringToken]([BeginToken]x[StringToken] <[BeginToken] y[StringToken],[SimpleToken] ([BeginToken]o[StringToken] as[KeywordToken] Function[KeywordToken])[SimpleToken]([BeginToken])[SimpleToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | main[StringToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | g[StringToken]([BeginToken]0[StringToken],[SimpleToken] 1[StringToken],[SimpleToken] ([BeginToken])[SimpleToken] =>[SimpleToken] 2[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | [SimpleToken] |