code: protected AbstractNode adopt(AbstractNode child) throws IllegalStateException {
  		child.ensureParentless();
  		child.parent = this;
  		return child;
  	}
docs: Adopts (accepts as direct child) the provided node.
  
  @param child The node to adopt
  @return The {@code child} parameter for chaining.
  @throws IllegalStateException If {@code child} already has a parent (clone or unparent it first).