private Iterable<? extends E> @NotNull [] getIterables() {
      int size = 0;
      for (Appended<? extends E> p = this; p != null; p = p.parent) size++;
      //noinspection unchecked
      Iterable<? extends E>[] iterables = new Iterable[size];
      int i = 0;
      for (Appended<? extends E> p = this; p != null; p = p.parent) iterables[size - (++i)] = p.iterable;
      return iterables;
    }
private Iterable<? extends E> @NotNull [] getIterables()