code: def to_same(value1, value2, ctx):
      
      if type(value1) == type(value2):
          return value1, value2
  
      try:
          # try converting to two decimals
          return to_decimal(value1, ctx), to_decimal(value2, ctx)
      except EvaluationError:
          pass
  
      try:
          # try converting to two dates
          d1, d2 = to_date_or_datetime(value1, ctx), to_date_or_datetime(value2, ctx)
  
          # if either one is a datetime, then the other needs to become a datetime
          if type(value1) != type(value2):
              d1, d2 = to_datetime(d1, ctx), to_datetime(d2, ctx)
          return d1, d2
      except EvaluationError:
          pass
  
      # try converting to two strings
      return to_string(value1, ctx), to_string(value2, ctx)
docs: Converts a pair of arguments to their most-likely types. This deviates from Excel which doesn't auto convert values
      but is necessary for us to intuitively handle contact fields which don't use the correct value type