Statement.Switch
module Case: { ... };
type t('M, 'T) = {
discriminant: Expression.t('M, 'T),
cases: list(Case.t('M, 'T)),
comments: option(Syntax.t('M, unit)),
exhaustive_out: 'T,
};