import java.lang.String;
import java.lang.Object;

public class Bug365{
  swap(f){
    return x -> y -> f.apply(y).apply(x);
  }

  swap(Fun1$$<String, Fun1$$<String, Fun1$$<String, Object>>> f){
    return x -> y -> z -> f.apply(z).apply(y).apply(x);
  }

  public ex1() {
    var func = x -> y -> z -> x + y + z;
    return func.apply("A").apply("B").apply("C");
  }
  public ex2() {
    var func = x -> y -> z -> x + y + z;
    return swap(func).apply("A").apply("B").apply("C");
  }
}
