public static AviatorFunction getFunction(int index, AviatorObject[] args, Map<String, Object> env, int arity) {
final AviatorObject arg = args[index];
if (!(arg instanceof AviatorJavaType)) {
throw new ExpressionRuntimeException(arg.desc(env) + " is not a function");
}
// special processing for "-" operator
String name = ((AviatorJavaType) arg).getName();
if (name.equals("-")) {
if (arity == 2) {