class_docstr: Represents an expression, condition pair.
code: def __new__(cls, expr, cond):
      expr = as_Basic(expr)
      if cond == True:
          return Tuple.__new__(cls, expr, true)
      elif cond == False:
          return Tuple.__new__(cls, expr, false)
      elif isinstance(cond, Basic) and cond.has(Piecewise):
          cond = piecewise_fold(cond)
          if isinstance(cond, Piecewise):
              cond = cond.rewrite(ITE)
  
      if not isinstance(cond, Boolean):
          raise TypeError(
              filldedent(
                  """
                  Second argument must be a Boolean,
                  not `%s`"""
                  % func_name(cond)
              )
          )
      return Tuple.__new__(cls, expr, cond)
  
imports: from sympy.core import S, Function, diff, Tuple, Dummy, Mul
  from sympy.core.basic import Basic, as_Basic
  from sympy.core.numbers import Rational, NumberSymbol, _illegal
  from sympy.core.parameters import global_parameters
  from sympy.core.relational import Lt, Gt, Eq, Ne, Relational, _canonical, _canonical_coeff
  from sympy.core.sorting import ordered
  from sympy.functions.elementary.miscellaneous import Max, Min
  from sympy.logic.boolalg import And, Boolean, distribute_and_over_or, Not, true, false, Or, ITE, simplify_logic, to_cnf, distribute_or_over_and
  from sympy.utilities.iterables import uniq, sift, common_prefix
  from sympy.utilities.misc import filldedent, func_name
  from itertools import product
label_desc: Use image node_id 1 for calling the ExprCondPair obj's underlying member method code with example usage: obj.__new__(cls, expr, cond) and returns: Tuple, Tuple, Tuple