import java.util.function.Supplier; interface DuallyParametric { default R match(Supplier bFn) { return null; } static DuallyParametric b() { return null; } static void foldLeft(Runnable fn) {} default void merge(DuallyParametric first) { foldLeft(() -> { Supplier> bDuallyParametricFunction = () -> first.match(() -> b()); }); } }