static class G : Function!(int, Function!(int, int)) { class g : Function!(int, int) { int x; this (int x) { this.x = x; } override int opCall(int x) { return this.x + x; } } override Function!(int, int) opCall(int x) { return new g(x); } mixin Singleton; } auto ug = G.get.uncurry; static assert (is (typeof (ug) : Function!(Tuple!(int, int), int)));
Uncurry a function.