/** * THERE IS SOMETHING TERRIBLY WRONG WITH ME. */ public class test { public static void main(String[] args) { b f = new flip(new append()); System.out.println(f._(" world", "hello")); } } class append implements b { public String _(String a, String b) { return a+b; } } class flip implements b { private b f; public flip(b f) { this.f = f; } public Z _(X x, Y y) { return f._(y, x); } } interface b { Z _(X x, Y y); } interface a { Y _(X x); }