def METHOD_NAME(
    self,
    add_bound_priors: bool = True,
    add_soft_bounds: bool = False,
) -> list[list[AbstractPrior]]:
    """Returns all priors."""
    # Obtain a list of all priors for each tunable hyperparameter of the kernel
    all_priors = []
    to_visit = []
    to_visit.append(self._gp.kernel.k1)
    to_visit.append(self._gp.kernel.k2)
    while len(to_visit) > 0:
        current_param = to_visit.pop(0)
        if isinstance(current_param, KernelOperator):
            to_visit.insert(0, current_param.k1)
            to_visit.insert(1, current_param.k2)
            continue
        elif isinstance(current_param, Kernel):
            hps = current_param.hyperparameters
            assert len(hps) == 1
            hp = hps[0]
            if hp.fixed:
                continue
            bounds = hps[0].bounds
            for i in range(hps[0].n_elements):
                priors_for_hp = []
                if current_param.prior is not None:
                    priors_for_hp.append(current_param.prior)
                if add_bound_priors:
                    if add_soft_bounds:
                        priors_for_hp.append(
                            SoftTopHatPrior(
                                lower_bound=bounds[i][0],
                                upper_bound=bounds[i][1],
                                seed=self._rng.randint(0, 2**20),
                                exponent=2,
                            )
                        )
                    else:
                        priors_for_hp.append(
                            TophatPrior(
                                lower_bound=bounds[i][0],
                                upper_bound=bounds[i][1],
                                seed=self._rng.randint(0, 2**20),
                            )
                        )
                all_priors.append(priors_for_hp)
    return all_priors