"Crashing at the point of the error" isn't necessarily useful in
Haskell due to lazy evaluation. The code will crash when the result
of the partial function is evaluated, which may be quite far away (in
terms of function calls) from where the programmer would expect.