docs: def adapt(self, other: 'BinningBase'):
          """Adapt this binning so that it contains all bins of another binning.
  
          Parameters
          ----------
          other: BinningBase
          """
          # TODO: in-place arg
          if np.array_equal(self.bins, other.bins):
              return None, None
          elif not self.is_adaptive():
              raise RuntimeError("Cannot adapt non-adaptive binning.")
          else:
              return self._adapt(other)