Type.Tuplemodule LabeledElement : sig ... endmodule SpreadElement : sig ... endtype ('M, 'T) element = 'M * ('M, 'T) element'and ('M, 'T) element' = | UnlabeledElement of ('M, 'T) Type.t| LabeledElement of ('M, 'T) LabeledElement.t| SpreadElement of ('M, 'T) SpreadElement.t