protected int cmpHierarchy(@Nonnull PathNode<?> path) {
		if (getValueType() != path.getValueType()) {
			// Check direct parent (quicker validation) and then if that does not pass, a multi-level descendant test.
			if ((parent != null && parent.typeIdMatch(path)) || isDescendantOf(path)) {
				// We are the child type, show last.
				return 1;
			}

			// Check direct parent (quicker validation) and then if that does not pass, a multi-level descendant test.
			if ((path.getParent() != null && typeIdMatch(path.getParent())) || path.isDescendantOf(this)) {
				// We are the parent type, show first.
				return -1;
			}
		}

		// Unknown
		return 0;
	}
@param path
		Some other path.

@return Comparing our parent value type to the given path,
and the other path parent value type to our own.
If we are the child type, then {@code -1} or {@link 1} if the parent type.
Otherwise {@code 0}.
recaf-core/src/main/java/software/coley/recaf/path/AbstractPathNode.java