
Hello! The (!) operator is short and nice. Unfortunately, when doing heavy computing, we have to use "unsafeAt" instead. It looks ugly and it is ugly, also. Some compilers for imperative languages like Free Pascal have an option to turn on/off bounds checking for arrays. Wouldn't it be nice to have such option in GHC? Is it possible? There is a problem: Haskell has a lot of array libraries. The only solution I see is a new FLAG pragma: (!) :: Array i a -> i -> a --definition {-# FLAG "boundsCheck" (!) = unsafeAt #-} It is similar to RULES pragma, but only fires when flag is set. To set the flag you need to complile with option -flags="boundsCheck". Also, the mantainers of vector library, bytestring library, repa library and so on will have to include such pragmas in their code. I don't know about C++ preprocessor, though. Maybe this is already solvable with #define's... Anyway, I have to say it once again: unsafeAt is ugly and Haskell is beautiful. Why high-performance code should be ugly?