Type system updates: moving from research into development

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.