import java.util.concurrent.Future; class TypeInferenceBug { public interface Callback { void done(V value); } public static void addCallback(Future future, Callback callback) {} public static Callback createCallback() { return value -> {}; } public static void bind(Future future) { addCallback(future, createCallback()); } }