def numericComparison(cv: concreteValue, nco: numericComparisonOperator, nv: numericValue):
    v1 = int(cv.cv_integer) if cv.inran('cv_integer') else \
         cv.cv_decimal if cv.inran('cv_decimal') else \
         int(cv.cv_string)
    v2 = nv.nv_decimal if nv.inran('decimalValue') else int(nv.nv_integer)
    return v1 == v2 if nco == nco_eq else \
           v1 != v2 if nco == nco_neq else \
           v1 > v2 if nco == nco_gt else \
           v1 >= v2 if nco == nco_ge else \
           v1 < v2 if nco == nco_lt else \
           v1 <= v2
def stringComparison(cv: concreteValue, sco: stringComparisonOperator, sv: stringValue) -> stringValue:
    v1 = str(cv.cv_integer) if cv.inran('cv_integer') else \
         str(cv.cv_decimal) if sv.inran('cv_decimal') else \
         str(cv.cv_string)
    v2 = str(sv)
    return v1 == v2 if sco == sco_eq else v1 != v1