1234567891011121314151617181920212223242526272829(**********************************************************************)(* *)(* LASCAr *)(* *)(* Copyright (c) 2017-present, Jocelyn SEROT. All rights reserved. *)(* *)(* This source code is licensed under the license found in the *)(* LICENSE file in the root directory of this source tree. *)(* *)(**********************************************************************)moduletypeT=sigtypetvalto_string:t->stringendmodulePair(M1:T)(M2:T)=structtypet=M1.t*M2.tletto_string(e1,e2)=M1.to_stringe1^","^M2.to_stringe2letmke1e2=e1,e2endmoduleTriplet(M1:T)(M2:T)(M3:T)=structtypet=M1.t*M2.t*M3.tletto_string(e1,e2,e3)=M1.to_stringe1^","^M2.to_stringe2^","^M3.to_stringe3letmke1e2e3=e1,e2,e3end