public override Expression GenerateRead(Compilation.AstGenerator gen)
        {
            Expression[] values = new Expression[arguments.Length + 1];

            values[0] = function.GenerateRead(gen);
            for (int i = 0; i < arguments.Length; i++)
            {
                values[i + 1] = arguments[i].Value.GenerateRead(gen);
            }

            return gen.Call(
                new CallInfo(values.Length, arguments.Where(a => a.Name != null).Select(a => a.Name)),
                values
            );
        }