modifySTUArray :: (Unboxed a, Ix i) => STUArray s i a -> i -> (a -> a) -> ST s ()
modifySTUArray arr idx func =
  readSTUArray arr idx >>= writeSTUArray arr idx . func
modifySTUArray :: (Unboxed a, Ix i) => STUArray s i a -> i -> (a -> a) -> ST s ()
modifySTUArray arr idx func =
  readSTUArray arr idx >>= writeSTUArray arr idx . func
modifySTUArray arr idx func =
  readSTUArray arr idx >>= writeSTUArray arr idx . func