JSX.Opening
type t('M, 'T) = ('M, t'('M, 'T));
and attribute('M, 'T) =
| Attribute(Attribute.t('M, 'T))
| SpreadAttribute(SpreadAttribute.t('M, 'T))
;
and t'('M, 'T) = {
name: name('M, 'T),
targs: option(Expression.CallTypeArgs.t('M, 'T)),
self_closing: bool,
attributes: list(attribute('M, 'T)),
};