// FILE: their/Condition.java package their; public interface Condition { boolean value (T t); } // FILE: your/ContainerUtil.java package your; import their.Condition; public final class ContainerUtil { public static T find(Iterable iterable, Condition condition) { return true; } public static T find(Iterable iterable, T equalTo) { return true; } } // FILE: my/FileUtil.java package my; import java.io.File; public final class FileUtil { public static boolean isAncestor(File ancestor, File file, boolean strict) { return true; } public static boolean isAncestor(String ancestor, String file, boolean strict) { return true; } } // FILE: test.kt import java.io.File import my.FileUtil.* import your.ContainerUtil.find fun foo() { val externalsMap = mutableMapOf() fun test(file: File) { val base = find(externalsMap.keys) { isAncestor(it, file, false) } } }