public static @NotNull <T> JBTreeTraverser<T> of(@NotNull Function<? super T, T[]> treeStructure) {
    return new JBTreeTraverser<>(Functions.compose(treeStructure, Functions.wrapArray()));
  }
public static @NotNull <T> JBTreeTraverser<T> of(@NotNull Function<? super T, T[]> treeStructure)