// ĠD ONT _ TARGET _ EX ACT _ BACKEND : ĠW ASM Ċ // ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ // ĠFIR Ġstatus : Ġin Ġprogress Ġ( delegate Ġbranch ) Ċ // ĠWITH _ STD LIB Ċ Ċ import Ġkotlin . experimental . Experimental Type Inference Ċ Ċ class ĠFoo < T > Ġ{ ĊĠĠĠ Ġfun Ġadd ( x : ĠT ) Ġ{} Ċ } Ċ Ċ @ Opt In ( Experimental Type Inference :: class ) Ċ fun Ġ< K 1 > Ġmy Builder 1 (@ Builder Inference Ġbuilder : ĠFoo < K 1 >. () Ġ-> ĠFoo < K 1 >): ĠFoo < K 1 > Ġ= ĠFoo < K 1 >(). apply Ġ{ Ġbuilder () Ġ} Ċ Ċ @ Opt In ( Experimental Type Inference :: class ) Ċ fun Ġ< K 2 > Ġmy Builder 2 (@ Builder Inference Ġbuilder : ĠFoo < K 2 >. () Ġ-> ĠUnit ): ĠFoo < K 2 > Ġ= ĠFoo < K 2 >(). apply ( builder ) Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġresult 1 Ġ= Ġmy Builder 1 Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( null ) ĊĠĠĠĠĠĠĠ Ġmy Builder 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ" OK " Ċ }