Pattern.Object
module Property: { ... };
type property('M, 'T) =
| Property(Property.t('M, 'T))
| RestElement(RestElement.t('M, 'T))
;
and t('M, 'T) = {
properties: list(property('M, 'T)),
annot: Type.annotation_or_hint('M, 'T),
comments: option(Syntax.t('M, list(Comment.t('M)))),
};