}
public ImmutableStack<Pair<T, Integer>> zipWithIndex()
{
int maxIndex = this.delegate.size() - 1;
Interval indicies = Interval.fromTo(0, maxIndex);
return ImmutableArrayStack.newStackFromTopToBottom(this.delegate.asReversed().zip(indicies).toList());
}