switch (args.length) {
            case 4:
                return fn(args[0], args[1], args[2], args[3]);
            case 3:
                return fn(args[0], args[1], args[2]);