Type.Objectmodule Property: { ... };module SpreadProperty: { ... };module Indexer: { ... };module CallProperty: { ... };module InternalSlot: { ... };and property('M, 'T) = | Property(Property.t('M, 'T))| SpreadProperty(SpreadProperty.t('M, 'T))| Indexer(Indexer.t('M, 'T))| CallProperty(CallProperty.t('M, 'T))| InternalSlot(InternalSlot.t('M, 'T));