model ImplemOcaml { component ID (out tIDENT) component MID (out tMIDENT) component MODELE (in IP, in OP, in SC, out tMODELE) component PATTERN (in IP, in OP, in SC, out tPATTERN) ID.tIDENT -> MODELE.IP ID.tIDENT -> MODELE.OP MID.tMIDENT -> MODELE.SC MID.tMIDENT -> PATTERN.IP MID.tMIDENT -> PATTERN.OP MID.tMIDENT -> PATTERN.SC component UNFOLD_MAPPING (in UM, in PM, out tMODELE, out PMAP, out IMAP, out UM) { component UNFOLD (in PM, out o) component PATTERN_MAPPING (in UM, in PM, out o) component INSTANCE_MAPPING (in i1, in i2, out o) UNFOLD_MAPPING.UM -> PATTERN_MAPPING.UM UNFOLD_MAPPING.PM -> PATTERN_MAPPING.PM UNFOLD_MAPPING.PM -> UNFOLD.PM UNFOLD.o -> INSTANCE_MAPPING.i2 UNFOLD_MAPPING.PM -> INSTANCE_MAPPING.i1 PATTERN_MAPPING.o -> PMAP INSTANCE_MAPPING.o -> IMAP } MODELE.tMODELE -> UNFOLD_MAPPING.UM PATTERN.tPATTERN -> UNFOLD_MAPPING.PM component APPLY (in IM, in PM, in i, out tMODELE) { component SOMME (out o) component MSOMME (out o) component MSOMME2 (out o) component MODELE (in IP, in OP, in SC, out tMODELE) SOMME.o -> MODELE.IP MSOMME.o -> MODELE.OP MSOMME2.o -> MODELE.SC MODELE.tMODELE -> tMODELE } MODELE.tMODELE -> ImplemOcaml.APPLY.IM UNFOLD_MAPPING.tMODELE -> APPLY.PM UNFOLD_MAPPING.IMAP -> APPLY.i }