Object.Propertytype key('M, 'T) = | StringLiteral(('T, StringLiteral.t('M)))| NumberLiteral(('T, NumberLiteral.t('M)))| BigIntLiteral(('T, BigIntLiteral.t('M)))| Identifier(Identifier.t('M, 'T))| PrivateName(PrivateName.t('M))| Computed(ComputedKey.t('M, 'T));and t('M, 'T) = ('M, t'('M, 'T));and t'('M, 'T) = | Init of {key: key('M, 'T),value: Expression.t('M, 'T),shorthand: bool,}| Method of {key: key('M, 'T),value: ('M, Function.t('M, 'T)),}| Get of {key: key('M, 'T),value: ('M, Function.t('M, 'T)),comments: option(Syntax.t('M, unit)),}| Set of {key: key('M, 'T),value: ('M, Function.t('M, 'T)),comments: option(Syntax.t('M, unit)),};