protected override Symbol Evaluate(Expression expression) { var x = expression.Arguments[0]; var y = expression.Arguments[1]; if (x.GetType() != y.GetType()) { return(expression); } return(SymbolComparer.Compare(x, y)); }