public __1(FuncFunc f) { this.f = f; }
public static Func _(FuncFunc f) { __1 r = new __1(f); return(r.apply(r)); }
static Func Y(FuncFunc f) { RecursiveFunc g = r => f(x => r(r)(x)); return(g(g)); }