I.e. look at how PureScript does it [0]. Haskell could do the same.
[0] https://pursuit.purescript.org/packages/purescript-arrays/3....
[0] https://pursuit.purescript.org/packages/purescript-arrays/3....
Or in other words, an "AssertionMonad". No thanks, I'm perfectly fine with assertion errors (i.e. "Index out of bounds"). I just need help with finding my own errors. Stacktraces are a good thing.
For the time being, make a helper function:
ixWithString :: String -> Int -> Array a -> a
check the bounds inside and error out with a custom message when the index is outside the array bounds.