Object.Propertytype key('M, 'T) = | Literal(('T, Literal.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)),};