public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {
public Value eval(StaticContext context, DocumentSet docs, NodeSet contextSet, NodeProxy contextNode) {
	public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {		if (getLeft().returnsType() == Constants.TYPE_NODELIST)			return nodeSetCompare(getLeft(), getRight(), docs, context, node);		else if (getRight().returnsType() == Constants.TYPE_NODELIST) {			switchOperands();			return nodeSetCompare(getRight(), getLeft(), docs, context, node);		} else if (getLeft().returnsType() == Constants.TYPE_NUM)			return numberCompare(getLeft(), getRight(), docs, context, node);		else if (getRight().returnsType() == Constants.TYPE_NUM)			return numberCompare(getRight(), getLeft(), docs, context, node);		else if (getLeft().returnsType() == Constants.TYPE_STRING)			return stringCompare(getLeft(), getRight(), docs, context, node);		else if (getLeft().returnsType() == Constants.TYPE_BOOL)			return booleanCompare(getLeft(), getRight(), docs, context, node);		else if (getRight().returnsType() == Constants.TYPE_BOOL)			return booleanCompare(getRight(), getLeft(), docs, context, node);		throw new RuntimeException("syntax error");	}