JSX.Openingtype 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)),};