public void apply(CallContext ctx) throws Throwable { Object proc = func.eval(ctx); int n = args.length; Object[] vals = new Object[n]; for (int i = 0; i < n; i++) vals[i] = args[i].eval(ctx); ((Procedure) proc).checkN(vals, ctx); }