public static Stream<Description> walk(final PathValue<? extends Type> root) {
		return walk(root, Descriptions::list);
	}
Return a Stream that is lazily populated with {@code Description} by
searching for all property descriptions in an object tree rooted at a
given starting {@code root} object. Only the <em>statically</em>
available property descriptions are returned, and the property
descriptions from Java classes are not part of the result.

{@snippet class="DescriptionSnippets" region="walk(PathValue)"}

The code snippet above will create the following output
<pre>{@code
Description[path=library.title, type=java.lang.String, enclosure=Book]
Description[path=library.pages, type=int, enclosure=Book]
Description[path=library.authors, type=java.util.List<Author>, enclosure=Book]
Description[path=library.authors[0], type=Author, enclosure=java.util.List]
Description[path=library.authors[0].forename, type=java.lang.String, enclosure=Author]
Description[path=library.authors[0].surname, type=java.lang.String, enclosure=Author]
}</pre>

@see #walk(Type)

@param root the root class of the object graph
@return all <em>statically</em> fetch-able property descriptions
jenetics.incubator/src/main/java/io/jenetics/incubator/beans/description/Descriptions.java