// type negotiation:
// 1. if both are variables, casting should take place based on the type field, or if no type is given, we use
// the value returned by getValue (might be the URI)
if(leftArg instanceof TNodes && rightArg instanceof TNodes) {
TNodes tleft = (TNodes) leftArg;
TNodes tright = (TNodes) rightArg;
switch (node.getOperator()) {
case EQ:
return create.decode().when(tleft.NODETYPE.equal("DOUBLE").and(tright.NODETYPE.equal("DOUBLE")), tleft.DOUBLECONTENT.equal(tright.DOUBLECONTENT))
.when(tleft.NODETYPE.equal("INTEGER").and(tright.NODETYPE.equal("INTEGER")), tleft.INTCONTENT.equal(tright.INTCONTENT))