@SuppressWarnings("unchecked")
	static <A, B extends A> ISeq<A> upcast(final ISeq<B> seq) {
		return (ISeq<A>)seq;
	}
Allows a safe (without compiler warning) upcast from {@code B} to
{@code A}. Since {@code ISeq} instances are immutable, an <i>upcast</i>
will be always safe.
{@snippet lang="java":
// The sequence which we want to case.
final ISeq<? extends Number> ints = ISeq.of(1, 2, 3, 4, 5);

// These casts are possible without warning.
final ISeq<Object> objects = ISeq.upcast(ints);
final ISeq<Number> numbers = ISeq.upcast(ints);

// This cast will, of course, still fail.
final ISeq<String> strings = ISeq.upcast(ints);
final ISeq<Integer> integers = ISeq.upcast(ints);
}

@since 3.6

@param seq the sequence to cast safely
@param <A> the <i>super</i>-object type
@param <B> the <i>sub</i>-object type
@return the cast instance of the given {@code seq}
jenetics/src/main/java/io/jenetics/util/ISeq.java