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