Exhaustiveness guard for discriminated unions. Place in the defaultdefault branch of a switchswitch over a union's discriminant: if a new variant is added without a matching case, the call fails to compile. Throws at runtime if reached with a value the types said was impossible.