code: public static <T> Iterable<T> toParent(TreeDef.Parented<T> treeDef, T node) {
  		return () -> new Iterator<T>() {
  			T tip = node;
  
  			@Override
  			public boolean hasNext() {
  				return tip != null;
  			}
  
  			@Override
  			public T next() {
  				if (tip == null) {
  					throw new NoSuchElementException();
  				}
  				T next = tip;
  				tip = treeDef.parentOf(tip);
  				return next;
  			}
  		};
  	}
docs: Creates an {@code Iterable} that starts at {@code node} and ends at its root parent.