docs: @Override
  	@SuppressWarnings("unchecked")
  	@Pure
  	public int indexOf(Object obj) {
  		if (obj == null) {
  			return -1;
  		}
  		final P element;
  		try {
  			element = (P) obj;
  		} catch (ClassCastException exception) {
  			return -1;
  		}
  		final Iterator<P> iter = this.tree.dataDepthFirstIterator();
  		P data;
  		int idx = 0;
  		while (iter.hasNext()) {
  			data = iter.next();
  			if (data == element) {
  				return idx;
  			}
  			++idx;
  		}
  		return -1;
  	}