Switch.Case
type t('M, 'T) = ('M, t'('M, 'T));
and t'('M, 'T) = {
test: option(Expression.t('M, 'T)),
consequent: list(Statement.t('M, 'T)),
comments: option(Syntax.t('M, unit)),
};