protected int Compare(VariableValue left, VariableValue right) { var comparison = VariableHandler.Compare(left, right); if (comparison.HasValue) { return(comparison.Value); } else { throw ComparisonMismatch(left.Type, right.Type); } }