@Specialization(guards = "isIntegerFixnum", rewriteOn = UnexpectedResultException.class)
public int deleteAtIntegerFixnumInBounds(RubyArray array, int index) throws UnexpectedResultException {
final int normalisedIndex = array.normaliseIndex(index);
if (normalisedIndex < 0) {
throw new UnexpectedResultException(getContext().getCoreLibrary().getNilObject());
} else if (normalisedIndex >= array.getSize()) {
throw new UnexpectedResultException(getContext().getCoreLibrary().getNilObject());
} else {
final int[] store = (int[]) array.getStore();
final int value = store[normalisedIndex];
System.arraycopy(store, normalisedIndex + 1, store, normalisedIndex, array.getSize() - normalisedIndex - 1);
array.setSize(array.getSize() - 1);