Object.Propertytype key('M, 'T) = | Literal(('M, Literal.t('M)))| Identifier(Identifier.t('M, 'T))| Computed(ComputedKey.t('M, 'T));and t('M, 'T) = ('M, t'('M, 'T));and t'('M, 'T) = {key: key('M, 'T),pattern: Pattern.t('M, 'T),default: option(Expression.t('M, 'T)),shorthand: bool,};