// WITH_SIGNATURES // FILE: t.kt fun genericSam(f: () -> T): Sam = J.sam({ f() }) fun genericSamGet(f: () -> T): T = J.get({ f() }) // FILE: J.java public class J { static T get(Sam s) { return s.get(); } static Sam sam(Sam s) { return s; } } // FILE: Sam.java public interface Sam { T get(); }