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