Be more explicit in generated case alternatives
This came up during the GHC call while discussing #13397 (closed) and I thought it would be good to record.
Often in the compiler we end up with a case analysis with a number of alternatives and a
DEFAULT case in place of the remaining alternative,
data T = Con1 | Con2 | Con3 ... case x of Con1 -> a Con2 -> b DEFAULT -> c
Arguably we should instead generate,
case x of Con1 -> a Con2 -> b Con3 -> c
instead as this may allow the code generator may be able to emit better code when it knows the finite bounds of the switch (e.g. using a jump table).