Pattern.Array
module Element: { ... };
type element('M, 'T) =
| Element(Element.t('M, 'T))
| RestElement(RestElement.t('M, 'T))
| Hole('M)
;
and t('M, 'T) = {
elements: list(element('M, 'T)),
annot: Type.annotation_or_hint('M, 'T),
comments: option(Syntax.t('M, list(Comment.t('M)))),
};