public static <GSection extends ArraySection<?>> GSection validate(final GSection section)
		throws NullPointerException, IndexOutOfBoundsException, IllegalArgumentException {
		if (section == null) throw new NullPointerException("section = null");
		if (section.array() == null) throw new NullPointerException("array = null");
		if (section.startIndex() < 0) throw new IndexOutOfBoundsException("startIndex < 0");
		if (section.finalIndex() < section.startIndex()) throw new IllegalArgumentException("finalIndex < startIndex");
		if (section.finalIndex() > section.arrayLength()) throw new IndexOutOfBoundsException("finalIndex > arrayLength");
		return section;
	}