code: def _simple_new(
      cls,
      left,
      right,
      closed=None,
      copy=False,
      dtype=None,
      verify_integrity=True,
  ):
      result = IntervalMixin.__new__(cls)
  
      closed = closed or "right"
      left = ensure_index(left, copy=copy)
      right = ensure_index(right, copy=copy)
  
      if dtype is not None:
          # GH 19262: dtype must be an IntervalDtype to override inferred
          dtype = pandas_dtype(dtype)
          if not is_interval_dtype(dtype):
              msg = "dtype must be an IntervalDtype, got {dtype}"
              raise TypeError(msg.format(dtype=dtype))
          elif dtype.subtype is not None:
              left = left.astype(dtype.subtype)
              right = right.astype(dtype.subtype)
  
      # coerce dtypes to match if needed
      if is_float_dtype(left) and is_integer_dtype(right):
          right = right.astype(left.dtype)
      elif is_float_dtype(right) and is_integer_dtype(left):
          left = left.astype(right.dtype)
  
      if type(left) != type(right):
          msg = (
              "must not have differing left [{ltype}] and right "
              "[{rtype}] types"
          )
          raise ValueError(
              msg.format(
                  ltype=type(left).__name__, rtype=type(right).__name__
              )
          )
      elif is_categorical_dtype(left.dtype) or is_string_dtype(
          left.dtype
      ):
          # GH 19016
          msg = (
              "category, object, and string subtypes are not supported "
              "for IntervalArray"
          )
          raise TypeError(msg)
      elif isinstance(left, ABCPeriodIndex):
          msg = "Period dtypes are not supported, use a PeriodIndex instead"
          raise ValueError(msg)
      elif isinstance(left, ABCDatetimeIndex) and str(left.tz) != str(
          right.tz
      ):
          msg = (
              "left and right must have the same time zone, got "
              "'{left_tz}' and '{right_tz}'"
          )
          raise ValueError(
              msg.format(left_tz=left.tz, right_tz=right.tz)
          )
  
      result._left = left
      result._right = right
      result._closed = closed
      if verify_integrity:
          result._validate()
      return result
  
imports: from operator import le, lt
  import textwrap
  import numpy
  from pandas._libs.interval import Interval, IntervalMixin, intervals_to_interval_bounds
  from pandas.compat import add_metaclass
  from pandas.compat.numpy import function
  from pandas.util._decorators import Appender
  from pandas.util._doctools import _WritableDoc
  from pandas.core.dtypes.cast import maybe_convert_platform
  from pandas.core.dtypes.common import is_categorical_dtype, is_datetime64_any_dtype, is_float_dtype, is_integer_dtype, is_interval, is_interval_dtype, is_scalar, is_string_dtype, is_timedelta64_dtype, pandas_dtype
  from pandas.core.dtypes.dtypes import IntervalDtype
  from pandas.core.dtypes.generic import ABCDatetimeIndex, ABCInterval, ABCIntervalIndex, ABCPeriodIndex, ABCSeries
  from pandas.core.dtypes.missing import isna, notna
  from pandas.core.arrays.base import ExtensionArray, _extension_array_shared_docs
  from pandas.core.arrays.categorical import Categorical
  import pandas.core.common
  from pandas.core.config import get_option
  from pandas.core.indexes.base import Index, ensure_index
label_desc: Use image node_id 2 for calling the IntervalArray obj's underlying member method code with example usage: obj._simple_new(cls, left, right, closed, copy, dtype, verify_integrity) and returns: result