Module Type.Tuple

module LabeledElement: { ... };
module SpreadElement: { ... };
type element('M, 'T) = ('M, element'('M, 'T));
and element'('M, 'T) =
  1. | UnlabeledElement(Type.t('M, 'T))
  2. | LabeledElement(LabeledElement.t('M, 'T))
  3. | SpreadElement(SpreadElement.t('M, 'T))
;
and t('M, 'T) = {
  1. elements: list(element('M, 'T)),
  2. comments: option(Syntax.t('M, unit)),
};