Type.Tuple
module LabeledElement: { ... };
module SpreadElement: { ... };
type element('M, 'T) = ('M, element'('M, 'T));
and element'('M, 'T) =
| UnlabeledElement(Type.t('M, 'T))
| LabeledElement(LabeledElement.t('M, 'T))
| SpreadElement(SpreadElement.t('M, 'T))
;