docs: def make_bin_array(bins) -> np.ndarray:
      """Turn bin data into array understood by HistogramXX classes.
  
      Parameters
      ----------
      bins: array_like
          Array of edges or array of edge tuples
  
      Examples
      --------
      >>> make_bin_array([0, 1, 2])
      array([[0, 1],
             [1, 2]])
      >>> make_bin_array([[0, 1], [2, 3]])
      array([[0, 1],
             [2, 3]])
      """
      bins = np.asarray(bins)
      if bins.ndim == 1:
          # if bins.shape[0] == 0:
          #     raise RuntimeError("Needs at least one bin")
          return np.hstack((bins[:-1, np.newaxis], bins[1:, np.newaxis]))
      elif bins.ndim == 2:
          if bins.shape[1] != 2:
              raise RuntimeError("Binning schema with ndim==2 must have 2 columns")
          # if bins.shape[0] == 0:
          #     raise RuntimeError("Needs at least one bin")
          return bins  # Already correct, just pass
      else:
          raise RuntimeError("Binning schema must have ndim==1 or ndim==2")