default T firstLeaf() {
		T leaf = self();
		while (!leaf.isLeaf()) {
			leaf = leaf.firstChild().orElseThrow(AssertionError::new);
		}

		return leaf;
	}
Return the first leaf that is a descendant of {@code this} node; either
this node or its first child's first leaf. {@code this} node is returned
if it is a leaf.

@see #isLeaf
@see  #isDescendant
@return the first leaf in the subtree rooted at this node
jenetics.ext/src/main/java/io/jenetics/ext/util/Tree.java