More type safety by using 'SpecialRegisterIndex' newtype.
Add instruction pointer register index.
Change the type of the 'createRegisterIndex' functions to make them total.