I assumed that in order not to break existing code, case would have to be the non-exhaustive version, therefore raising at runtime, while case! would be exhaustive. But it would certainly make sense to do it the other way around if possible.
I assumed that in order not to break existing code, case would have to be the non-exhaustive version, therefore raising at runtime, while case! would be exhaustive. But it would certainly make sense to do it the other way around if possible.