// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ fun Ġ< T > Ġrun ( arg 1 : ĠT , Ġarg 2 : ĠT , Ġfun Ref :( T , T ) Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġfun Ref ( arg 1 , Ġarg 2 ) Ċ } Ċ Ċ fun Ġfoo ( o : ĠInt , Ġk : ĠInt ) Ġ= Ġo Ġ+ Ġk Ċ Ċ class ĠA Ċ Ċ fun ĠA . bar () Ġ= Ġ(:: foo )( 1 1 1 , Ġ 2 2 2 ) Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= ĠA (). bar () ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ 3 3 3 ) Ġreturn Ġ" Fail Ġ$ result " ĊĊĠĠĠ Ġvar Ġr Ġ= Ġrun ( 1 1 1 , Ġ 2 2 2 , Ġ:: foo ) ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ 3 3 3 ) Ġreturn Ġ" Fail Ġ$ result " ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ