code: private List<Tree<K, V>> findDepth(List<Tree<K, V>> zipper, int depth) {
          if (zipper.isEmpty())
              throw new RuntimeException("Defect: unexpected empty zipper while computing range");
  
          if (isBlackTree(zipper.get(0))) {
              return depth <= 1 ? zipper : findDepth(zipper.subList(1, zipper.size()), depth - 1);
          } else {
              return findDepth(zipper.subList(1, zipper.size()), depth);
          }
      }
docs: This is like drop(n-1), but only counting black nodes