Given that `Stack` has a `maxSize`, I wonder if it makes sense to not have an ever-increasing index value in `backingIndexMap` and `backingKeyMap`, but instead re-use the integers within (0 to maxSize) to avoid overflow for very large maps.