public static <T> Stream<T> recurse(Stream<? extends T> seed, Function<? super T, Stream<? extends T>> fn) {
		return seed.flatMap(x -> recurse(x, fn));
	}
Recursively traversed {@code seed}.

@param seed
		Initial stream.
@param fn
		Transforming function.
@param <T>
		Element type.

@return Stream containing all traversed elements.
recaf-core/src/main/java/software/coley/recaf/util/Streams.java