private void callBiOperator2(String op, String method, String invertMethod, String alterantive, String invertAlterantive, XValue left, XValue right) {
		if (handles__getItem__(left)) {
			callHelper("_" + method, left, right);
		} else {
			XValue m = XUtils.lookupTry(rt, left, method, XValue.REF_NONE);
			if (m == null) {
				if (handles__getItem__(right)) {
					callHelper("_" + invertMethod, right, left);
					return;
				} else {
					m = XUtils.lookupTry(rt, right, invertMethod, XValue.REF_NONE);
					if (m == null) {
						m = XUtils.lookupTry(rt, left, alterantive, XValue.REF_NONE);
						if (m == null) {
							m = XUtils.lookupTry(rt, right, invertAlterantive, XValue.REF_NONE);
							if (m == null) {
								methodNotFound(op, left, right);
							} else {
								call(m, right, new XArrayList<XValue>(left), null);
							}
						} else {
							call(m, left, new XArrayList<XValue>(right), null);
						}
					} else {
						call(m, right, new XArrayList<XValue>(left), null);
					}
				}
			} else {
				call(m, left, new XArrayList<XValue>(right), null);
			}
		}
	}