What do you mean by "strict typing of its index"?
For containers, you can do this to make it a type error to index the container with anything other than the newtype you made.
In some languages you can replace/implement the indexing operation a[i] with your new type, so the code looks the same as usual, but gets the benefit of preventing the wrong 'integer' from being used.